17/10/2023
1
Algorithmique et Structure
de données 1
Enseignante: Dr. Islem Jarraya
1
Les éléments de base
de l’algorithmique
Introduction à
l’algorithmique
Les structures
décisionnelles
Les structures
itératives
Tableaux Tableaux
multidimensionnels
Procédures et
fonctions
Algorithmes de tri
des tableaux
2
17/10/2023
2
Chapitre 1: Introduction à l’algorithmique
1- Définition l’informatique
2- Définition de l’algorithme
3- Définition d’un programme
3
C’est quoi l’informatique
L’informatique est un mot composé de deux mots:
Définition:
L’informatique est une science de traitement automatique de l’information par une machine
(Ordinateur)
Le traitement:
Le traitement est un ensemble d’opération effectuées sur l’information (Calcul, géstion, tri,
traitement d’image, ….)
Infor + matique
ation Auto = Informatique
4
17/10/2023
3
C’est quoi l’informatique
Système informatique:
Le système informatique est un ensemble d’éléments en interaction
entre eux en vue de traiter automatiquement l’information.
Les élément informatiques:
● Éléments matériaux: l’écran, l’unité centrale, un clavier, une
souris, ….
● logiciels: c’est tous les systèmes de base (code, programmes)
Sans les logiciels la machine ne marche pas
5
C’est quoi l’informatique
Objective de l’informatique:
● Pallier les insuffisances humaines en matière de performance
de calcul (résoudre des problèmes complexes)
● Accroître la performance du couple homme-machine (temps de
réponse et qualité du résultat)
6
17/10/2023
4
Comment résoudre un problème ?
● Pour résoudre un problème données par l’informatique:
le programmeur doit mettre au point un programme et l'exécution par la
machine.
● Pour écrire un programme il faut:
- Bien comprendre le problème
- Ecrire un algorithme
- Connaître un langage de programmation pour écrire le programme
Problème Algorithm Programme 7
C’est quoi un algorithme ?
● Découper un problème logiquement en un ensemble d’opérations
élémentaires (actions)
OU
● Un algorithme est une spécification d’un schéma de calcul sous forme d’une
suite finie d’opération élémentaire à un enchaînement déterminé.
OU ENCORE
● La description des étapes à suivre pour réaliser un travail ou pour résoudre
un problème.
8
17/10/2023
5
Conception d’un algorithme
Pour écrire un algorithme, il faut poser les questions suivants:
● Quelles sont les données ?
● Quel est le résultat attendu ?
● Comment résoudre le problème ?
- Quels sont les principaux sous problèmes ?
- Quelles sont les principales étapes permettant de les résoudre?
9
Structure d’un algorithme
10
17/10/2023
6
Structure d’un algorithme
Algorithme: Nom-de-lAlgorithme
Variables: var1, var2, … //déclaration de variables
Début
//instruction de traitement 1
//instruction de traitement 2
….
Fin
La virgule sépare les éléments
(comme les variables)
Deux slashs indiquent une ligne de
commentaire
Un algorithme est exécuté de
manière séquentielle
11
C’est quoi un programme ?
Un programme est une succession logique et ordonnée d’instructions
Un programme est une description ou traduction d’un algorithme dans un langage
de programmation.
Langage de Programmation:
Les langages de programmation représentent des notation intermédiaires entre le
langage machine (1 et 0) et le langage d’un algorithme.
Exemple: Pascal, C, Java, Visual Basic, …
Remarque: Un algorithme est indépendant du langage de programmation (donc la machine)
12
17/10/2023
7
La démarche de programmation
Algorithme: Suite
d’instruction en
pseudo-langage
Langage de
programmation:
C
Programme
Traduire
Programme
compilé
Exécuteur
Compiler (déterminer les
erreurs de syntaxe)
Exécuter
Compilateur
Erreurs
syntaxiques
Données
Résultats
Erreurs
d’éxécution 13
Les éléments de base
de l’algorithmique
Introduction à
l’algorithmique
Les structures
décisionnelles
Les structures
itératives
Tableaux Tableaux
multidimensionnels
Procédures et
fonctions
Algorithmes de tri
des tableaux
14
17/10/2023
8
Chapitre 2: Les éléments de base de l’algorithmique
1. Les variables et constantes
2. La déclaration et l’affectation d'une donnée
3. Les instructions de lecture et d’écriture
4. Les opérateurs
5. Les commentaires
15
Les variables/constantes
Ecrire un algorithme permettant de calculer la surface d’un carré de côté 3 cm
puis de côté 4 cm
Inconvénient:
- la longueur du côté n’est pas fixe, il faut changer la valeur du
côté pour chaque nouveau carré
Solution1:
3*3 = 9 cm
4*4 = 16 cm
Solution2:
a=3
R=a*a
a=4
R=a*a
Inconvénient:
- On doit changer la valeur du a pour chaque nouveau carré
- On ne peut pas voir le résultat
Instructions de lecture un variable du clavier
Utiliser les variables/constantes
Instructions d’écrire la valeur d’un variable sur l’écran
16
17/10/2023
9
Les variables/constantes
Type de données
Variables Constante
17
Définition d’une variable/constante
Une variable correspond à un emplacement dans la mémoire qui contient une
information unique à un moment donné et dont la valeur peut changer.
Une constante correspond à un emplacement dans la mémoire qui contient une
information unique à un moment donné et dont la valeur ne peut pas changer.
Variable
Adresse
Nom
Valeur
Constante
Adresse
Nom
Valeur
(fixe)
Type
18
17/10/2023
10
Les variables/constantes
Constante
Adresse
Nom
Valeur
La déclaration
Variable
Adresse
Nom
Valeur
La déclaration L’affectation
Type
19
La déclaration d’une variable/constante
Un ordinateur est doté d'une mémoire, et cette mémoire est composée de
nombreuses cases. Les programmes peuvent lire et écrire dans ces cases, grâce
à des variables.
Une variable est une case mémoire avec une adresse et une valeur. On peut
créer autant de variables que l'on veut dans un programme, pour mémoriser et
retrouver des informations.
#F152847
20
17/10/2023
11
La déclaration d'une donnée
La déclaration permet d’informer l’ordinateur l'existence d’une donnée.
Demander à l’ordinateur la permission de réserver un espace de la mémoire
où on peut stocker et récupérer l’information.
21
Syntaxe de déclaration d’une constante
En algorithmique:
Exemple:
Constante Pi = 3.14
Constante NbrMois = 12
Constante NomEcole = ‘IPSAS’
Constante
Nom
Valeur
(fixe)
Constante NomConstante = valeur
Langage C:
const type NomVariable = valeur;
const float Pi = 3.14;
22
17/10/2023
12
Syntaxe de déclaration d’une variable
En algorithmique:
Exemple:
Variable Age : entier
Variable
Nom Valeur
Variable NomVariable : Type
Type
Entier Réel Caractère Chaine de
Caractère
Booléen
Langage C:
Type NomVariable;
23
L’affectation d’une variable
L’affectation est une opération qui consiste à attribuer à une variable:
● soit une valeur particulière
● soit une valeur contenue dans une autre variable
● soit une valeur calculer à l’aide d’opérateurs arithmétiques
Elle est représentée par une flèche orientée à gauche
24
17/10/2023
13
Syntaxe d’affectation d’une variable
En algorithmique:
Exemple:
A 2 La variable A reçoit la valeur 2
B A La variable B reçoit le contenu de A
C A+B
Nom “Sara”
Variable
NomVariable valeur
Nom Valeur
Type
Langage C:
NomVariable = valeur;
25
Exercice: déclaration
Soient 3 variables A, B et C:
● A est un entier
● B est une chaîne de caractères
● C est de type Booléen (logique)
Déclare ces variable.
Algorithmique:
Variable A : entier
Variable B : chaînes de caractères
Variable C : Booléen
Langage C:
int A;
char B;
bool C; 26
17/10/2023
14
Exercice: affectation
Affecte pour les 3 variables A, B et C trois valeurs différentes.
Algorithmique:
A 4
B ‘Bonjour’
C true
Langage C:
A = 4;
B = ‘Bonjour’;
C = true;
27
Exercice: affectation
Instruction Variables
A B C D E
B 2
C B+10
A 4
D A
B B*D
E 1<4
C B+E
A 10+4+C
C A+B+C 28
17/10/2023
15
Nommer une variable
Règles syntaxiques
Nom:
Il existe des règles pour donner des noms aux variables :
● Un nom de variable ne peut pas commencer par un chiffre.
● Un nom de variable ne contient pas d'espace.
● Unique pour chaque variable
● Commence toujours par une lettre
● Différenciation minuscule-majuscule
Type:
● Conditionne le format de la variable en mémoire
Valeur:
● Peut évoluer pendant l’exécution
● initialisation grâce à l’opérateur d’affectation
29
Nommer une variable
Conventions
Il existe aussi des conventions, qui permettent de rendre un programme plus lisible et plus
compréhensible.
● Choisir des noms clairs et précis (en lisant le nom d'une variable, il doit être possible de
savoir à quoi elle sert dans le programme).
● Écrire le nom des variables en anglais.
● Ne pas utiliser de caractères spéciaux (on se restreint aux 26 lettres en minuscules et
majuscules, aux 10 chiffres et à l'underscore _).
● Pour être explicite le nom d'une variable peut contenir plusieurs mots, pour cela on
peut :
○ remplacer les espaces par des underscores (méthode snake_case).
○ ou commencer chaque nouveau mot par une lettre majuscule (méthode
camelCase préférée en JavaScript).
30
17/10/2023
16
Lecture et écriture d’une variable au clavier
Programme qui calcule la somme de A et B
Entrer la valeur de A:
Le programme
affiche un message
et attend que
l'utilisateur tape
une valeur L'utilisateur tape la
valeur 3
3
Entrer la valeur de B:
Le programme lit la
valeur tapée et
affiche un nouvelle
message pour
entrer la valeur de B L'utilisateur tape la
valeur 4
4
Le programme lit la
valeur 4, calcule la
somme et affiche le
résultat La somme est: 7
31
Ecrire: Opération de sortie
L‘instruction ecrire() permet d’afficher la valeur d’une expression sur un
périphérique de sortie (écran). Une expression peut être:
● un nombre
● une variable
● un résultat d’une opération
● une chaîne de caractères (il est nécessaire de mettre la chaine de caractère
entre deux apostrophes)
32
17/10/2023
17
Ecrire: Opération de sortie
Syntaxe:
Ecrire ( Variable )
Ecrire ( “Message” )
Ecrire ( “Message”, Variable )
Algorithmique:
Variable A: entier
A 2023
Ecrire (“Cette année:”, A)
Langage C:
int A;
A=2023;
printf (“Cette année: %d”, A)
Type Type C Affichage C
Entier int %d
Réel float %f
Booléen bool %d
Caractère char %c
chaîne char var[] %s
33
Lire: Opération d’entrée
L‘instruction lire() permet de demander à l’utilisateur de taper des informations.Chaque
information donnée est stockée dans une variable.
Syntaxe:
lire ( Variable )
lire ( Variable1, Variable2, Variable3, …)
Algorithmique:
Variable x, age: entier
Variable nom, prénom: chaine de caractère
Lire (x)
Lire(nom, prenom, age)
Langage C:
int x, age;
string nom, prenom;
scanf("%d,%d", x, age);
scanf("%s, %s", nom, prenom);
34
17/10/2023
18
Exercice
Soit X, Y et Z trois variables déclarées. Complète le tableau suivant.
Instruction X Y Z Affichage
X 150
Y 100
Z “DT”
Ecrire(“Hello Word”)
Ecrire(X)
Ecrire(“Z”)
Ecrire(X*2)
Ecrire(“Prix:” , X + Y , Z) 35
Les commentaires
● Pour accentuer la lisibilité de l’algorithme et faciliter sa compréhension
par les humains, on peut introduire des commentaires, qui ne sont pas des
instructions destinées à la machine mais des indications données au lecteur
de l'algorithme.
● Les sont encadrés par les symboles % ou //.
36
17/10/2023
19
Les commentaires
Syntaxe:
% Commentaire % ou //Commentaire
Exemple:
// Déclaration de la variable pays
Variable pays : chaîne de caractères
// Affectation de la valeur Tunisie à la variable pays
pays “Tunisie”
37
Les opérateurs
● On distingue trois types d’opérateurs: arithmétiques, logiques,
d’incrémentation/décrémentation et opérateurs Arithmétiques binaire
d’affectation. Ils s’appliquent à des valeurs entières ou réelles.
Les opérateur arithmétiques: Tel que: +, -, /
Les opérateur logiques:Tel que: <, >, <=, >=, =, ≠, et, ou, non
Les opérateurs d’incrémentation/décrémentation:Tel que: ++ et - -
Les opérateurs Arithmétiques binaire d’affectation:Tel que: -=, +=, *=
● Un ordre de précédence est établi entre les opérateurs. On peut utiliser les
parenthèses pour favoriser la précédence de certains opérateurs.
● On peut combiner deux expressions logiques par l’opérateur et ou bien
l’opérateur ou. Le résultat est 0 si Faux et 1 si Vrai.
38
17/10/2023
20
Opérateurs logiques
Soit A et B deux variables booléennes. Le tableau suivant illustre les différentes
valeurs de vérité que l’on obtient en combinant les valeurs de A et B à l’aide des
opérateurs logiques.
Et Ou
0 et 0 = 0 0 ou 0 = 0
0 et 1 = 0 0 ou 1 = 1
1 et 0 = 0 1 ou 0 = 1
1 et 1 = 1 1 ou 1 = 1
39
Opérateurs logiques
=
40
17/10/2023
21
Opérateurs arithmétiques
Les opérateurs arithmétiques s’appliquent à des valeurs entières ou réelles.
Ces opérateurs nécessitent deux arguments, placés de part et d’autre de
l’opérateur:
41
Opérateurs arithmétiques
(%) nécessite obligatoirement deux arguments entiers.
- Si les opérandes sont de même type, le résultat sera toujours du type des
opérandes.
- Si les deux opérandes sont de type différent ( mais numérique évidemment), le
compilateur prévoit une conversion implicite selon l’ordre suivant :
{char->int ; int ->long ; int ->float et float->double}.
Remarque: Le compilateur considère les char comme des entiers, les opérations sont
effectués sur les valeurs numériques des codes ASCII.
42
17/10/2023
22
Opérateurs d’incrémentation/décrémentation
● ++a : ajoute 1 à la variable a. Le résultat de l’expression est la valeur finale de a.
C’est l’incrémentation préfixée.
● a++ : ajoute 1 à la variable a. Le résultat de l’expression est la valeur initiale de a.
C’est l’incrémentation postfixée.
● De même, la décrémentation - - a et a - - soustrait 1.
Exemples
j=++i est équivalent à j=(i=i+1).
int x=4, y=7 ; x=++y ; int x=4, y=7 ; x=y++ ;
int x=4, y=7 ; x= --y ; int x=4, y=7 ; x = y-- ;
43
Opérateurs Arithmétiques binaire d’affectation
Ces opérateurs sont : +=, -=, *=, /=, %=
a+=5 est équivalent à a=(a+5) a-=5 est équivalent à a=(a-5)
b-=a est équivalent à b=(b-a)
b*=a est équivalent à b=(b*a) b/=a est équivalent à b=(b/a)
b%=a est équivalent à b=(b%a) b%=5 est équivalent à b=(b%5)
Exemple
i+=4 i/=j i+=j i%=j i-=j i-=5 i*=5 X*=Y+1
44
17/10/2023
23
Précédence des opérateurs
1 Fonction ( ) [ ]
2 unaire ! ++ - -
3 multiplicatif * /mod /div / %
4 additif + -
5 relationnel < > <= >=
6 négation Non
7 Inégalité/égalité = ≠ == !=
8 ET relationnel et &&
9 OU relationnel ou ||
10 affectation = *= /= %= += -=
Priorité
décroissante
45
Opérateurs de division
10 / 3
10 Div 3
10 3
3.33
10 3
3
10 Mod 3
10 3
1
46
17/10/2023
24
Les opérateurs: Exemple
Variables:
n, p, q, s, t: entier
r: booléen
Début
n 5, p 10, q 5, s 3, t 9
t n*p+t/q/s
d n/s mod q*n+r
r s*q div p mod d*q-s
r p>q et p<n=q
Fin
47
Les éléments de base
de l’algorithmique
Introduction à
l’algorithmique
Les structures
décisionnelles
Les structures
itératives
Tableaux Tableaux
multidimensionnels
Procédures et
fonctions
Algorithmes de tri
des tableaux
48
17/10/2023
25
Chapitre 3: Les structures décisionnelles
1. Structure conditionnelle simple
2. Structure conditionnelle alternative
3. Structure conditionnelle alternative imbriquée
4. Structure conditionnelle à choix multiple
49
Structure conditionnelle
Programme qui calcule la division
Entrer le dividende:
Entrer le diviseur:
12
4
Le Résultat est: 3
50
17/10/2023
26
Structure conditionnelle
51
Structure conditionnelle
Entrer le dividende:
Entrer le diviseur:
12
0
Le résultat est: ERREUR
Besoin des instructions
conditionnelles
52
17/10/2023
27
Structure conditionnelle
Structure séquentielle
Un algorithme qui suit une structure séquentielle est un algorithme dont toutes les
instructions sont exécutées l’une après l'autre de façon à ce que l’ordre des
instructions est respecté.
Exemple:
Les algorithmes précédents.
Structure séquentielle ≠ Structure conditionnelle
53
Structure conditionnelle simple
Structure conditionnelle
La structure conditionnelle est une structure dont les instructions sont exécutées selon les
réponse des conditions.
1- Structure conditionnelle Simple
Syntaxe:
Si Condition Alors
Instructions
Fin
Si la condition vaut Vrai alors le bloc d’instructions sera exécuté, si non il sera ignoré.
Langage C:
Structure séquentielle ≠ Structure conditionnelle
if ( Condition )
{ Instructions
}
54
17/10/2023
28
Structure conditionnelle simple
55
Structure conditionnelle simple (Exemple)
Ecrire un algorithme qui permet d’afficher le maximum de deux nombres réels
saisies par l’utilisateur.
56
17/10/2023
29
Structure conditionnelle simple (Exemple)
57
Structure conditionnelle
Entrer le dividende:
Entrer le diviseur:
12
0
La division par 0 est impossible
Besoin des instructions
conditionnelles alternatives
58
17/10/2023
30
Structure conditionnelle alternative
2- Structure conditionnelle Alternative (deux choix)
Syntaxe:
Si Condition Alors
Instructions1
Sinon
Instructions2
Fin
Si la condition vaut Vrai alors le bloc d’instructions1 sera exécuté, et le bloc d’instructions2
sera ignoré, sinon le bloc d’instructions2 sera exécuté et le bloc d’instructions1 sera ignoré.
Langage C:
if ( Condition )
{ Instructions1
}
else
{ Instructions2
}
59
Structure conditionnelle alternative
60
17/10/2023
31
Structure conditionnelle alternative (Exemple)
Ecrire un algorithme qui permet de demander un nombre entier à l’utilisateur, et
l’informe ensuite si ce nombre est positif ou négatif.
61
Structure conditionnelle alternative (Exemple)
62
17/10/2023
32
Structure conditionnelle
Programme qui détermine la nature d’un nombre
Veillez entrer un
nombre:
0
Ce nombre est négatif
Besoin des instructions
conditionnelles alternatives
imbriquées
63
Structure conditionnelle alternative imbriquée
3- Structure conditionnelle Alternative Imbriquée (multiple choix)
Syntaxe: Si Condition1 Alors
Instructions1
Sinon
Si Condition2 Alors
Instructions2
Sinon
Instructions3
Fin
Fin
Langage C:
if ( Condition1 )
{ Instructions1}
else
{
if ( Condition2 )
{ Instructions2}
else
{ Instructions3}
}
64
17/10/2023
33
Structure conditionnelle alternative imbriquée
65
Structure conditionnelle alternative imbriquée (Exercice)
Ecrire un algorithme qui permet de lire la valeur de la température de l’eau et
d’afficher son état:
● Glace si la température est inférieur à 0.
● Liquide si la température est strictement supérieur à 0 et strictement inférieur
à 100.
● Vapeur si la température est supérieur à 100.
66
17/10/2023
34
Structure conditionnelle alternative imbriquée (Exercice)
67
Structure conditionnelle
68
17/10/2023
35
Structure conditionnelle
69
Structure conditionnelle
Besoin des instructions
conditionnelles à choix
multiple
70
17/10/2023
36
Structure conditionnelle à choix multiple
4- Structure conditionnelle à choix multiple
Lorsque l’imbrication des alternatives devient importante, l’utilisation de la
structure à choix multiple devient nécessaire.
Syntaxe:
Selon Variable
Valeur1: Instructions 1
Valeur2: Instructions 2
…
ValeurN : Instructions N
Default: Autre instruction
Fin
Langage C:
switch( Condition1 )
{case Valeur1:
Instructions 1;
break;
case Valeur2:
Instructions 1;
break;
default:
Instructions3;}
71
Structure conditionnelle à choix multiple
72
17/10/2023
37
Structure conditionnelle à choix multiple
Ecrire un algorithme qui permet de demander à l’utilisateur de saisir un entier
entre 1 et 7 au clavier, et afficher le nom du jour correspondant.
73

cours algorithmique: introduction aux algos.pdf

  • 1.
    17/10/2023 1 Algorithmique et Structure dedonnées 1 Enseignante: Dr. Islem Jarraya 1 Les éléments de base de l’algorithmique Introduction à l’algorithmique Les structures décisionnelles Les structures itératives Tableaux Tableaux multidimensionnels Procédures et fonctions Algorithmes de tri des tableaux 2
  • 2.
    17/10/2023 2 Chapitre 1: Introductionà l’algorithmique 1- Définition l’informatique 2- Définition de l’algorithme 3- Définition d’un programme 3 C’est quoi l’informatique L’informatique est un mot composé de deux mots: Définition: L’informatique est une science de traitement automatique de l’information par une machine (Ordinateur) Le traitement: Le traitement est un ensemble d’opération effectuées sur l’information (Calcul, géstion, tri, traitement d’image, ….) Infor + matique ation Auto = Informatique 4
  • 3.
    17/10/2023 3 C’est quoi l’informatique Systèmeinformatique: Le système informatique est un ensemble d’éléments en interaction entre eux en vue de traiter automatiquement l’information. Les élément informatiques: ● Éléments matériaux: l’écran, l’unité centrale, un clavier, une souris, …. ● logiciels: c’est tous les systèmes de base (code, programmes) Sans les logiciels la machine ne marche pas 5 C’est quoi l’informatique Objective de l’informatique: ● Pallier les insuffisances humaines en matière de performance de calcul (résoudre des problèmes complexes) ● Accroître la performance du couple homme-machine (temps de réponse et qualité du résultat) 6
  • 4.
    17/10/2023 4 Comment résoudre unproblème ? ● Pour résoudre un problème données par l’informatique: le programmeur doit mettre au point un programme et l'exécution par la machine. ● Pour écrire un programme il faut: - Bien comprendre le problème - Ecrire un algorithme - Connaître un langage de programmation pour écrire le programme Problème Algorithm Programme 7 C’est quoi un algorithme ? ● Découper un problème logiquement en un ensemble d’opérations élémentaires (actions) OU ● Un algorithme est une spécification d’un schéma de calcul sous forme d’une suite finie d’opération élémentaire à un enchaînement déterminé. OU ENCORE ● La description des étapes à suivre pour réaliser un travail ou pour résoudre un problème. 8
  • 5.
    17/10/2023 5 Conception d’un algorithme Pourécrire un algorithme, il faut poser les questions suivants: ● Quelles sont les données ? ● Quel est le résultat attendu ? ● Comment résoudre le problème ? - Quels sont les principaux sous problèmes ? - Quelles sont les principales étapes permettant de les résoudre? 9 Structure d’un algorithme 10
  • 6.
    17/10/2023 6 Structure d’un algorithme Algorithme:Nom-de-lAlgorithme Variables: var1, var2, … //déclaration de variables Début //instruction de traitement 1 //instruction de traitement 2 …. Fin La virgule sépare les éléments (comme les variables) Deux slashs indiquent une ligne de commentaire Un algorithme est exécuté de manière séquentielle 11 C’est quoi un programme ? Un programme est une succession logique et ordonnée d’instructions Un programme est une description ou traduction d’un algorithme dans un langage de programmation. Langage de Programmation: Les langages de programmation représentent des notation intermédiaires entre le langage machine (1 et 0) et le langage d’un algorithme. Exemple: Pascal, C, Java, Visual Basic, … Remarque: Un algorithme est indépendant du langage de programmation (donc la machine) 12
  • 7.
    17/10/2023 7 La démarche deprogrammation Algorithme: Suite d’instruction en pseudo-langage Langage de programmation: C Programme Traduire Programme compilé Exécuteur Compiler (déterminer les erreurs de syntaxe) Exécuter Compilateur Erreurs syntaxiques Données Résultats Erreurs d’éxécution 13 Les éléments de base de l’algorithmique Introduction à l’algorithmique Les structures décisionnelles Les structures itératives Tableaux Tableaux multidimensionnels Procédures et fonctions Algorithmes de tri des tableaux 14
  • 8.
    17/10/2023 8 Chapitre 2: Leséléments de base de l’algorithmique 1. Les variables et constantes 2. La déclaration et l’affectation d'une donnée 3. Les instructions de lecture et d’écriture 4. Les opérateurs 5. Les commentaires 15 Les variables/constantes Ecrire un algorithme permettant de calculer la surface d’un carré de côté 3 cm puis de côté 4 cm Inconvénient: - la longueur du côté n’est pas fixe, il faut changer la valeur du côté pour chaque nouveau carré Solution1: 3*3 = 9 cm 4*4 = 16 cm Solution2: a=3 R=a*a a=4 R=a*a Inconvénient: - On doit changer la valeur du a pour chaque nouveau carré - On ne peut pas voir le résultat Instructions de lecture un variable du clavier Utiliser les variables/constantes Instructions d’écrire la valeur d’un variable sur l’écran 16
  • 9.
    17/10/2023 9 Les variables/constantes Type dedonnées Variables Constante 17 Définition d’une variable/constante Une variable correspond à un emplacement dans la mémoire qui contient une information unique à un moment donné et dont la valeur peut changer. Une constante correspond à un emplacement dans la mémoire qui contient une information unique à un moment donné et dont la valeur ne peut pas changer. Variable Adresse Nom Valeur Constante Adresse Nom Valeur (fixe) Type 18
  • 10.
    17/10/2023 10 Les variables/constantes Constante Adresse Nom Valeur La déclaration Variable Adresse Nom Valeur Ladéclaration L’affectation Type 19 La déclaration d’une variable/constante Un ordinateur est doté d'une mémoire, et cette mémoire est composée de nombreuses cases. Les programmes peuvent lire et écrire dans ces cases, grâce à des variables. Une variable est une case mémoire avec une adresse et une valeur. On peut créer autant de variables que l'on veut dans un programme, pour mémoriser et retrouver des informations. #F152847 20
  • 11.
    17/10/2023 11 La déclaration d'unedonnée La déclaration permet d’informer l’ordinateur l'existence d’une donnée. Demander à l’ordinateur la permission de réserver un espace de la mémoire où on peut stocker et récupérer l’information. 21 Syntaxe de déclaration d’une constante En algorithmique: Exemple: Constante Pi = 3.14 Constante NbrMois = 12 Constante NomEcole = ‘IPSAS’ Constante Nom Valeur (fixe) Constante NomConstante = valeur Langage C: const type NomVariable = valeur; const float Pi = 3.14; 22
  • 12.
    17/10/2023 12 Syntaxe de déclarationd’une variable En algorithmique: Exemple: Variable Age : entier Variable Nom Valeur Variable NomVariable : Type Type Entier Réel Caractère Chaine de Caractère Booléen Langage C: Type NomVariable; 23 L’affectation d’une variable L’affectation est une opération qui consiste à attribuer à une variable: ● soit une valeur particulière ● soit une valeur contenue dans une autre variable ● soit une valeur calculer à l’aide d’opérateurs arithmétiques Elle est représentée par une flèche orientée à gauche 24
  • 13.
    17/10/2023 13 Syntaxe d’affectation d’unevariable En algorithmique: Exemple: A 2 La variable A reçoit la valeur 2 B A La variable B reçoit le contenu de A C A+B Nom “Sara” Variable NomVariable valeur Nom Valeur Type Langage C: NomVariable = valeur; 25 Exercice: déclaration Soient 3 variables A, B et C: ● A est un entier ● B est une chaîne de caractères ● C est de type Booléen (logique) Déclare ces variable. Algorithmique: Variable A : entier Variable B : chaînes de caractères Variable C : Booléen Langage C: int A; char B; bool C; 26
  • 14.
    17/10/2023 14 Exercice: affectation Affecte pourles 3 variables A, B et C trois valeurs différentes. Algorithmique: A 4 B ‘Bonjour’ C true Langage C: A = 4; B = ‘Bonjour’; C = true; 27 Exercice: affectation Instruction Variables A B C D E B 2 C B+10 A 4 D A B B*D E 1<4 C B+E A 10+4+C C A+B+C 28
  • 15.
    17/10/2023 15 Nommer une variable Règlessyntaxiques Nom: Il existe des règles pour donner des noms aux variables : ● Un nom de variable ne peut pas commencer par un chiffre. ● Un nom de variable ne contient pas d'espace. ● Unique pour chaque variable ● Commence toujours par une lettre ● Différenciation minuscule-majuscule Type: ● Conditionne le format de la variable en mémoire Valeur: ● Peut évoluer pendant l’exécution ● initialisation grâce à l’opérateur d’affectation 29 Nommer une variable Conventions Il existe aussi des conventions, qui permettent de rendre un programme plus lisible et plus compréhensible. ● Choisir des noms clairs et précis (en lisant le nom d'une variable, il doit être possible de savoir à quoi elle sert dans le programme). ● Écrire le nom des variables en anglais. ● Ne pas utiliser de caractères spéciaux (on se restreint aux 26 lettres en minuscules et majuscules, aux 10 chiffres et à l'underscore _). ● Pour être explicite le nom d'une variable peut contenir plusieurs mots, pour cela on peut : ○ remplacer les espaces par des underscores (méthode snake_case). ○ ou commencer chaque nouveau mot par une lettre majuscule (méthode camelCase préférée en JavaScript). 30
  • 16.
    17/10/2023 16 Lecture et écritured’une variable au clavier Programme qui calcule la somme de A et B Entrer la valeur de A: Le programme affiche un message et attend que l'utilisateur tape une valeur L'utilisateur tape la valeur 3 3 Entrer la valeur de B: Le programme lit la valeur tapée et affiche un nouvelle message pour entrer la valeur de B L'utilisateur tape la valeur 4 4 Le programme lit la valeur 4, calcule la somme et affiche le résultat La somme est: 7 31 Ecrire: Opération de sortie L‘instruction ecrire() permet d’afficher la valeur d’une expression sur un périphérique de sortie (écran). Une expression peut être: ● un nombre ● une variable ● un résultat d’une opération ● une chaîne de caractères (il est nécessaire de mettre la chaine de caractère entre deux apostrophes) 32
  • 17.
    17/10/2023 17 Ecrire: Opération desortie Syntaxe: Ecrire ( Variable ) Ecrire ( “Message” ) Ecrire ( “Message”, Variable ) Algorithmique: Variable A: entier A 2023 Ecrire (“Cette année:”, A) Langage C: int A; A=2023; printf (“Cette année: %d”, A) Type Type C Affichage C Entier int %d Réel float %f Booléen bool %d Caractère char %c chaîne char var[] %s 33 Lire: Opération d’entrée L‘instruction lire() permet de demander à l’utilisateur de taper des informations.Chaque information donnée est stockée dans une variable. Syntaxe: lire ( Variable ) lire ( Variable1, Variable2, Variable3, …) Algorithmique: Variable x, age: entier Variable nom, prénom: chaine de caractère Lire (x) Lire(nom, prenom, age) Langage C: int x, age; string nom, prenom; scanf("%d,%d", x, age); scanf("%s, %s", nom, prenom); 34
  • 18.
    17/10/2023 18 Exercice Soit X, Yet Z trois variables déclarées. Complète le tableau suivant. Instruction X Y Z Affichage X 150 Y 100 Z “DT” Ecrire(“Hello Word”) Ecrire(X) Ecrire(“Z”) Ecrire(X*2) Ecrire(“Prix:” , X + Y , Z) 35 Les commentaires ● Pour accentuer la lisibilité de l’algorithme et faciliter sa compréhension par les humains, on peut introduire des commentaires, qui ne sont pas des instructions destinées à la machine mais des indications données au lecteur de l'algorithme. ● Les sont encadrés par les symboles % ou //. 36
  • 19.
    17/10/2023 19 Les commentaires Syntaxe: % Commentaire% ou //Commentaire Exemple: // Déclaration de la variable pays Variable pays : chaîne de caractères // Affectation de la valeur Tunisie à la variable pays pays “Tunisie” 37 Les opérateurs ● On distingue trois types d’opérateurs: arithmétiques, logiques, d’incrémentation/décrémentation et opérateurs Arithmétiques binaire d’affectation. Ils s’appliquent à des valeurs entières ou réelles. Les opérateur arithmétiques: Tel que: +, -, / Les opérateur logiques:Tel que: <, >, <=, >=, =, ≠, et, ou, non Les opérateurs d’incrémentation/décrémentation:Tel que: ++ et - - Les opérateurs Arithmétiques binaire d’affectation:Tel que: -=, +=, *= ● Un ordre de précédence est établi entre les opérateurs. On peut utiliser les parenthèses pour favoriser la précédence de certains opérateurs. ● On peut combiner deux expressions logiques par l’opérateur et ou bien l’opérateur ou. Le résultat est 0 si Faux et 1 si Vrai. 38
  • 20.
    17/10/2023 20 Opérateurs logiques Soit Aet B deux variables booléennes. Le tableau suivant illustre les différentes valeurs de vérité que l’on obtient en combinant les valeurs de A et B à l’aide des opérateurs logiques. Et Ou 0 et 0 = 0 0 ou 0 = 0 0 et 1 = 0 0 ou 1 = 1 1 et 0 = 0 1 ou 0 = 1 1 et 1 = 1 1 ou 1 = 1 39 Opérateurs logiques = 40
  • 21.
    17/10/2023 21 Opérateurs arithmétiques Les opérateursarithmétiques s’appliquent à des valeurs entières ou réelles. Ces opérateurs nécessitent deux arguments, placés de part et d’autre de l’opérateur: 41 Opérateurs arithmétiques (%) nécessite obligatoirement deux arguments entiers. - Si les opérandes sont de même type, le résultat sera toujours du type des opérandes. - Si les deux opérandes sont de type différent ( mais numérique évidemment), le compilateur prévoit une conversion implicite selon l’ordre suivant : {char->int ; int ->long ; int ->float et float->double}. Remarque: Le compilateur considère les char comme des entiers, les opérations sont effectués sur les valeurs numériques des codes ASCII. 42
  • 22.
    17/10/2023 22 Opérateurs d’incrémentation/décrémentation ● ++a: ajoute 1 à la variable a. Le résultat de l’expression est la valeur finale de a. C’est l’incrémentation préfixée. ● a++ : ajoute 1 à la variable a. Le résultat de l’expression est la valeur initiale de a. C’est l’incrémentation postfixée. ● De même, la décrémentation - - a et a - - soustrait 1. Exemples j=++i est équivalent à j=(i=i+1). int x=4, y=7 ; x=++y ; int x=4, y=7 ; x=y++ ; int x=4, y=7 ; x= --y ; int x=4, y=7 ; x = y-- ; 43 Opérateurs Arithmétiques binaire d’affectation Ces opérateurs sont : +=, -=, *=, /=, %= a+=5 est équivalent à a=(a+5) a-=5 est équivalent à a=(a-5) b-=a est équivalent à b=(b-a) b*=a est équivalent à b=(b*a) b/=a est équivalent à b=(b/a) b%=a est équivalent à b=(b%a) b%=5 est équivalent à b=(b%5) Exemple i+=4 i/=j i+=j i%=j i-=j i-=5 i*=5 X*=Y+1 44
  • 23.
    17/10/2023 23 Précédence des opérateurs 1Fonction ( ) [ ] 2 unaire ! ++ - - 3 multiplicatif * /mod /div / % 4 additif + - 5 relationnel < > <= >= 6 négation Non 7 Inégalité/égalité = ≠ == != 8 ET relationnel et && 9 OU relationnel ou || 10 affectation = *= /= %= += -= Priorité décroissante 45 Opérateurs de division 10 / 3 10 Div 3 10 3 3.33 10 3 3 10 Mod 3 10 3 1 46
  • 24.
    17/10/2023 24 Les opérateurs: Exemple Variables: n,p, q, s, t: entier r: booléen Début n 5, p 10, q 5, s 3, t 9 t n*p+t/q/s d n/s mod q*n+r r s*q div p mod d*q-s r p>q et p<n=q Fin 47 Les éléments de base de l’algorithmique Introduction à l’algorithmique Les structures décisionnelles Les structures itératives Tableaux Tableaux multidimensionnels Procédures et fonctions Algorithmes de tri des tableaux 48
  • 25.
    17/10/2023 25 Chapitre 3: Lesstructures décisionnelles 1. Structure conditionnelle simple 2. Structure conditionnelle alternative 3. Structure conditionnelle alternative imbriquée 4. Structure conditionnelle à choix multiple 49 Structure conditionnelle Programme qui calcule la division Entrer le dividende: Entrer le diviseur: 12 4 Le Résultat est: 3 50
  • 26.
    17/10/2023 26 Structure conditionnelle 51 Structure conditionnelle Entrerle dividende: Entrer le diviseur: 12 0 Le résultat est: ERREUR Besoin des instructions conditionnelles 52
  • 27.
    17/10/2023 27 Structure conditionnelle Structure séquentielle Unalgorithme qui suit une structure séquentielle est un algorithme dont toutes les instructions sont exécutées l’une après l'autre de façon à ce que l’ordre des instructions est respecté. Exemple: Les algorithmes précédents. Structure séquentielle ≠ Structure conditionnelle 53 Structure conditionnelle simple Structure conditionnelle La structure conditionnelle est une structure dont les instructions sont exécutées selon les réponse des conditions. 1- Structure conditionnelle Simple Syntaxe: Si Condition Alors Instructions Fin Si la condition vaut Vrai alors le bloc d’instructions sera exécuté, si non il sera ignoré. Langage C: Structure séquentielle ≠ Structure conditionnelle if ( Condition ) { Instructions } 54
  • 28.
    17/10/2023 28 Structure conditionnelle simple 55 Structureconditionnelle simple (Exemple) Ecrire un algorithme qui permet d’afficher le maximum de deux nombres réels saisies par l’utilisateur. 56
  • 29.
    17/10/2023 29 Structure conditionnelle simple(Exemple) 57 Structure conditionnelle Entrer le dividende: Entrer le diviseur: 12 0 La division par 0 est impossible Besoin des instructions conditionnelles alternatives 58
  • 30.
    17/10/2023 30 Structure conditionnelle alternative 2-Structure conditionnelle Alternative (deux choix) Syntaxe: Si Condition Alors Instructions1 Sinon Instructions2 Fin Si la condition vaut Vrai alors le bloc d’instructions1 sera exécuté, et le bloc d’instructions2 sera ignoré, sinon le bloc d’instructions2 sera exécuté et le bloc d’instructions1 sera ignoré. Langage C: if ( Condition ) { Instructions1 } else { Instructions2 } 59 Structure conditionnelle alternative 60
  • 31.
    17/10/2023 31 Structure conditionnelle alternative(Exemple) Ecrire un algorithme qui permet de demander un nombre entier à l’utilisateur, et l’informe ensuite si ce nombre est positif ou négatif. 61 Structure conditionnelle alternative (Exemple) 62
  • 32.
    17/10/2023 32 Structure conditionnelle Programme quidétermine la nature d’un nombre Veillez entrer un nombre: 0 Ce nombre est négatif Besoin des instructions conditionnelles alternatives imbriquées 63 Structure conditionnelle alternative imbriquée 3- Structure conditionnelle Alternative Imbriquée (multiple choix) Syntaxe: Si Condition1 Alors Instructions1 Sinon Si Condition2 Alors Instructions2 Sinon Instructions3 Fin Fin Langage C: if ( Condition1 ) { Instructions1} else { if ( Condition2 ) { Instructions2} else { Instructions3} } 64
  • 33.
    17/10/2023 33 Structure conditionnelle alternativeimbriquée 65 Structure conditionnelle alternative imbriquée (Exercice) Ecrire un algorithme qui permet de lire la valeur de la température de l’eau et d’afficher son état: ● Glace si la température est inférieur à 0. ● Liquide si la température est strictement supérieur à 0 et strictement inférieur à 100. ● Vapeur si la température est supérieur à 100. 66
  • 34.
    17/10/2023 34 Structure conditionnelle alternativeimbriquée (Exercice) 67 Structure conditionnelle 68
  • 35.
    17/10/2023 35 Structure conditionnelle 69 Structure conditionnelle Besoindes instructions conditionnelles à choix multiple 70
  • 36.
    17/10/2023 36 Structure conditionnelle àchoix multiple 4- Structure conditionnelle à choix multiple Lorsque l’imbrication des alternatives devient importante, l’utilisation de la structure à choix multiple devient nécessaire. Syntaxe: Selon Variable Valeur1: Instructions 1 Valeur2: Instructions 2 … ValeurN : Instructions N Default: Autre instruction Fin Langage C: switch( Condition1 ) {case Valeur1: Instructions 1; break; case Valeur2: Instructions 1; break; default: Instructions3;} 71 Structure conditionnelle à choix multiple 72
  • 37.
    17/10/2023 37 Structure conditionnelle àchoix multiple Ecrire un algorithme qui permet de demander à l’utilisateur de saisir un entier entre 1 et 7 au clavier, et afficher le nom du jour correspondant. 73