Cours: Algorithmique I
Lahmeri Nada
[Link]@[Link]
Université Libre de Tunis
Groupe Bouabdelli
Département Informatique
Niveau : 1ère année Ingénieur
Semestre : I
Année universitaire : 2019 – 2020
1
CHAPITRE 2:
LES STRUCTURES
ÉLÉMENTAIRES
•Structure d’un algorithme
•Les variables, les constantes
•Les types de données
•Les instructions élémentaires
2
Structure d’un algorithme
Un algorithme se compose :
1. d’une en-tête qui précise
le nom attribué à l’algorithme
les données de l’algorithme
les résultats fournis par l’algorithme
2. d’un corps délimité par les mots clés : Début
et Fin, formé par une suite ordonnée
d’actions
Par convention les mots clés sont soulignés.
3
Structure de l’algorithme
Type : [ types de données ]
4
Les variables
Dans un programme, une variable est un
identificateur qui sert à stocker une valeur
donnée.
◦ Physiquement, elle correspond à un
emplacement de la mémoire centrale, repéré par
une adresse binaire.
◦ Sa valeur varie ou change.
Elle possède deux attributs :
◦ un nom qui sert à la désigner,
◦ un type qui décrit l'utilisation possible de cette
variable.
5
Les variables
La lisibilité des programmes dépend
étroitement du choix des noms des variables,
qui doivent être simples et significatifs.
◦ Ex: tel est plus significatif que x pour désigner le
numéro de téléphone
Le nom d’une variable est formé d’une ou
de plusieurs lettres alphanumérique:
◦ Commence toujours par une lettre alphabétique
◦ Comprend des chiffres
Nom incorrect : 1erProg, calcul salaire,
Nom correct : qte, P, f91
6
Déclaration des variables
Les variables doivent faire l'objet d'une déclaration
de type de la forme:
Var
Exemples
Syntaxe
Var
identificateur :TypeDeDonnée compteur : entier
var1, var2, var3 : type
X,Y, Z : entier
7
Les constantes
Contrairement aux variables, il s’agit d’un
objet de valeur fixe ou invariable.
Sa valeur reste inchangée durant
l’exécution du programme
Elle est décrite par son nom et sa valeur.
◦Exemples : 5 constante entière; 4.13 constante
réelle; ‘c’ constante caractère
Const
Exemples
Syntaxe
Const Pi = 3,14
nom_constante = valeur
g = 9.8
8
La notion de type
A chaque variable utilisée dans
l’algorithme, il faut lui associer un type de
données qui lui permet de définir:
L’ensemble des valeurs que peut prendre la
variable
L’ensemble des opérations qu’on peut lui
appliquer
9
Les types de données
Les plus courants en algorithmique :
1. numérique : Entier et Réel
2. alphanumérique : Caractère, Chaîne de
caractères
3. booléen : Booléen
Type Exemple
Entier 12; 657; -78; +17
Réel 12.5; 46.25; -0.5; +150.76
Caractère “a”; “A” ; “1”
Chaine de caractères "Bonjour"
Booléen vrai; faux
10
Type Entier
Domaine des valeurs
◦ Les valeurs forment un sous-ensemble de l'ensemble
des nombres entiers relatifs appartenant à Z.
Ex : 14 ; 29;-109;-3220; 0; 23767;..
◦ Les valeurs varient selon le langage de programmation
(nombre de bits réservé pour une variable)
Opérations sur les entiers Exemples
Opération Opérateur
Addition + 13 div 5 = 2
Soustraction - 13 mod 5 = 3
Multiplication *
Division entière Div
Modulo (reste de la division) Mod 11
Type Réel
Domaine des valeurs :
◦ un sous-ensemble de l'ensemble des nombres
réels IR.
◦ Deux formes de représentation:
Avec le point comme symbole décimal : 1.28; 36.14;-
902.15; 14.10^-5 ; 3.10^6
Notation scientifique aEb où a est la mantisse et b est
l’exposant: ….. = 3.47E+2 = 0.347E+3 = 3470E-1=..
Opérations sur le réel
Addition +
Soustraction -
Multiplication *
[Link]@topnet.t 12
Division réelle / 12
Les fonctions arithmétiques standards
La fonction Le rôle Exemples
Tronc (X) Supprime la partie décimale et ne Tronc (7.23) = 7
laisse que la composante entière de X Tronc (12.0) =12
Arrondi (X) Renvoie une valeur arrondie de X Arrondi (7.478) =7
Arrondi (7.5) = 8
ABS (X ) Donne la valeur absolue de X Abs (-25) = 25
Abs (2.3) =2.3
Carré (X) Donne le carré de X Carre (4) = 16
Carre (2.5) = 6.75
Racine carré(X) Donne la racine carrée de X si X est Racine carré (16) = 4
positif sinon provoque une erreur
Sin (X) Donne le sinus de x en radian Sin (PI/6) = 0.5
Sin (PI) =0
Cos (X) Donne le cosinus de x en radian Cos (PI/6) = 0.86
Exp( X ) Donne l’exponentielle de X Exp (0) = 1.000
Successeur (X) Donne la valeur suivante de X Successeur (5) = 6
[Link]@[Link] 13
Prédécesseur (X) Donne la valeur précédente9/d13e/20X
13 prédécesseur (5) = 4 13
Exemple
14
Type booléen
Domaine des valeurs :
◦ Ne peut prendre que les deux valeurs
logiques Vrai ou faux
◦ Intervient dans l’évaluation d’une expression
Les opérateurs logiques :
◦ La négation NON
◦ L’intersection ET
◦ L’union OU
15
Opérateurs logiques
16
Exercice
Pour a = 1, b = 2 et c = 3 évaluez les
expressions suivantes :
(b > 8) ou (c < 1) ? (b > 0) ou (c > 1) ?
(b > 9) ou (c > 1) ? (b > a) et (c > b) ?
(b > a) et (c < 0) ? non (c < a) ?
non ((b > a) et (c > b)) ?
((b > a) et (c > b)) ou (a < 0) ?
17
Type caractère
Domaine de valeurs
◦ Les caractères alphabétiques : majuscules ["A".."Z"]
et minuscules ["a".."z"]
◦ Les chiffres ["0".."9"]
◦ Les caractères spéciaux : ")" "]" "?" "!" "*" "+" "." ..
◦ Les caractères de contrôle : <Entrée>; <Echap>;…
Il existe deux types de caractères
1. non imprimables: Il s'agit des caractères de
contrôle du système telle que: Entrée, Echap
2. imprimables: Il s'agit des lettres alphabétiques,
des symboles de ponctuation, des chiffres,...etc.
18
Type caractère
◦ Une variable de type caractère ne peut contenir qu’un seul
caractère à la fois et représentée entre " "
◦ Le caractère espace est un caractère noté " "
◦ Chaque caractère admet un code ASCII
Opérateurs applicables sur les caractères:
Opération Opérateur
Égal =
Différent Exemples :
Inférieur < "A" > "B" Faux
Inférieur ou égal "A" < "B" Vrai
Supérieur >
Supérieur ou égal
19
Table ASCII
20
Fonctions prédéfinies sur les
caractères
La fonction Rôle Exemples
Chr(x) Renvoie le caractère dont le Chr (65) "A"
code ASCII est X Chr (48) "0"
Ord(c) Renvoie le code ASCII du Ord (A) 65
caractère C.
Pred(c) Renvoie le caractère qui Pred("b") = "a"
précède le caractère C.
Succ(c) Renvoie le caractère qui Pred("a") = "b"
succède le caractère C.
Majus (c) Renvoie un caractère Majus ("a ") "A"
correspond à la conversion en Majus ("B") "B"
majuscule de C 21
D’autres types de données
Le programmeur peut définir lui-même de nouveaux
types de données en fonction de ses besoins.
Exemple : type énuméré qui est un type dont les
variables associées n’auront qu’un nombre limité de
valeurs
Type
Tnote = 0..20
Tsemaine = (Dimanche, Lundi, Mardi, Mercredi, Jeudi,
Vendredi, Samedi)
Tsaison = ("A", "H" ,"P", "E" )
Var
n :Tnote
se :Tsemaine
s:Tsaison 22
Les fonctions prédéfinis sur les
types énumérés
La fonction Le rôle Exemples
Succ(exp_type_énuméré) Fournit le successeur de la Succ (Lundi) donne
valeur donnée (erreur si cette Mardi
expression désigne la dernière
valeur énumérée)
Pred(exp_type_énuméré) Fournit le predecesseur de la Pred (Mardi) donne
valeur donnée (erreur si cette Lundi
expression désigne la première
valeur énumérée)
Ord (exp_type_énuméré) Fournit le numéro d’ordre de la Ord ( Dimanche)
valeur donnée par donne 0
exp_type_énuméré Ord (Mardi) donne
2
23
Une expression
Une expression un ensemble de valeurs
d’une combinaison d’opérandes : constante,
variable et d’opérateurs (arithmétique,
relationnel, logique) et équivalente à une
seule valeur.
Exemple d’expressions de type numérique :
◦ A (2+3)/2
24
Les expressions arithmétiques
+ : l’addition ;
n;
– : la soustraction ;
* : la multiplicatio
/ : la division ;
^ : la puissance
• La multiplication et la division ont naturellement
la priorité sur l’addition et la soustraction.
• On peut utiliser les parenthèses pour forcer la
priorité.
• Si la priorité est la même alors l’ordre de lecture
de gauche à droite
25
Ordre de priorité
Opérateurs arithmétiques Opérateurs relationnels
Priorité Opérateur
Priorité Opérateur
1 - Signe négatif
1 >
2 ( ) les paranthèses
2 >=
3 ^ la puissance
4 * et / multiplication et division 3 <
5 + et – addition et soustraction 4 =<
5 =
6
Opérateurs logiques
Priorité Opérateur
1 NON négation
2 ET intersection
3 OU union
26
Les instructions élémentaires
Un algorithme comporte 2 types d'instructions :
◦ Les instructions élémentaires : permettent de manipuler
des variables : affectation, saisie et affichage.
◦ Les instructions de structuration du programme :
permettent de préciser comment doivent s'enchaîner
chronologiquement les instructions élémentaires. On
trouve trois types de structures :
L'enchaînement
Les structures conditionnelles ou de choix
Les structures itératives ou de répétition
27
Instruction d’affectation
Affecter ou attribuer une valeur à la variable, de même
type Variable Valeur ou Expression
Ex:NB A+B // détermine la valeur de l'expression (a+3) et la range dans b, sans
modifier la valeur de a
Algorithme essai
var
x,y,a,b,c : réel
début
a1 affectation
La trace d’exécution a b c x
b2
c3 1 2 3 -
x a+b*c
x a+b*c 1 2 3 7
x a*b+c
x a+c/b
x c/(a+b) x a*b+c 1 2 3 5
yx
fin 9/13/2013a+c/b 1 2
x [Link]@[Link] 3 2.5
27
28
Exercice
Déterminer les valeurs des variables A, B
et C après exécution des instructions
suivantes (les blocs sont indépendants) :
29
L’affectation – ordre
L’ordre des instructions joue un rôle essentiel dans le
résultat final
Exemple 1 Exemple 2
Algorithme test Algorithme test
Var :A : entier Var :A : entier
Début Début
A 34 A 12
A 12 A 34
Fin Fin
◦ A la fin de l’algorithme, ◦ A la fin de l’algorithme,
la variable A est égale la variable A est égale
à 12. à 34. 30
Possibilité d’affectation
1. Affecter à une variable la valeur d’une autre
variable
2. Affecter à une variable le résultat d’une
opération en fonction d’autres variables.
Ex:
[Link]
Algorithme essai
var
x,y, z : entier
début
x1
zx
yz+6
fin 30
31
Opération de sortie
Instruction d’écriture
Ecrit sur un périphérique les valeurs
d'une ou de plusieurs variables.
La communication : Programme Utilisateur
écrire a //Afficher la valeur de a sur le périphérique.
écrire a, b //Afficher les valeurs de a et b dans cet ordre.
Exemple : Algorithme essai
var
x,y : entier
début
x2
y5
écrire x,y
fin 31
32
Opération de sortie
instruction d’écriture
Le texte à afficher doit être mis entre guillemets.
◦ Ecrire ("< texte>")
Affichage du contenu d’une variable :
◦ Ecrire ( < variable>)
Affichage Mixte : on sépare les éléments à afficher par
des virgules.
◦ Ecrire ("< texte>", < variable>, ….)
Exemple
◦ Affichage du message calcul de la surface
Ecrire ("calcul de la surface")
◦ Affichage de la valeur de la variable S
Ecrire (S)
◦ Affichage Mixte
Ecrire ("Pour une longueur ", Long, "et une largeur ",
Large, "la surface est égale", S) 33
Exemple
Algorithme calcul
Var :
x : entier
r: réel
a : caractère
b : booléen
Début
// Ajouter instructions initialisation ici
écrire("La valeur de x est : ", x)
écrire("La valeur de r est : ", r)
écrire("La valeur de c est : ", c)
écrire("La valeur de b est : ", b)
Fin
34
Opération d’entrée
Instruction de lecture
Permet de fournir des valeurs au programme.
La communication : Utilisateur Programme
lire a // recevoir une valeur sur le périphérique (ex: clavier) et
la ranger dans variable a.
lire x,y //prendre deux valeurs sur le périphériques et les ranger
dans x et y dans cet ordre. [Link]@[Link]
carré 34
var
n, carre : entier
début
écrire "Donnez un nombre:"
lire n
carre n*n
écrire ("Voici son carré :", carre)
fin
35
Exemples
Algorithme calculSurface_1
Const : longueur = 3, largeur = 5
Var : surface : réel
Exemple 1
Début
Surface longueur *largeur
Écrire (" la surface du rectangle est: ", surface)
Fin
Algorithme calculSurface_1
Var : longueur, largeur, surface : réel
Début
Écrire " donner la longueur:"
Exemple 2
Lire (longeur)
Écrire " donner la largeur:"
Lire (largeur)
Surface longueur *largeur
Écrire (" la surface du rectangle est: ", surface)
fin 36
Problème = Calculer l'intérêt et la valeur acquise par
une somme placée pendant un an à intérêt simple
ANALYSE : L'énoncé du problème indique
◦ Données : deux nombres représentant :
Résolution d’un problème
la valeur de la somme placée
le taux d'intérêt
◦ Résultats désirés : deux nombres représentant :
l'intérêt fourni par la somme placée
la valeur obtenue après placement d'un an.
◦ Traitement
-Pour obtenir l'intérêt fourni par la somme, il
suffit de multiplier la somme par le taux d'intérêt
divisé par cent;
- la valeur acquise s'obtient en additionnant ce
dernier montant et la somme initiale 37