Algorithmique
Chapitre2 : Les structures de contrôle
Pr: Adil AMMAR
Objectifs
´ la boucle POUR
´ la boucle REPETER
1
10/10/2021
Début e2
´ La condition désigne une expression booléenne dont la valeur est VRAI ou FAUX.
T1 et T2 désignent une suite d'instructions (pouvant elles mêmes être des
structures alternatives).
oui condition non
Vraie
?
SI (Condition)
ALORS T1;
T1 T2
SINON T2;
FSI
suite du programme
2
10/10/2021
ALGORITHME Valeur_absolue;
VARIABLES
N : ENTIER;
ABS : ENTIER; /* valeur absolue */
DEBUT
ECRIRE("Entrez une valeur entière :");
LIRE(N);
SI (N >=0)
ALORS ABS ¬ N;
SINON ABS ¬ (-1)*N;
FSI
ECRIRE("La valeur absolue de ", N, " est : ", ABS);
FIN
3
10/10/2021
´ Exercice 1 : L’utilisateur saisit un caractère, écrire l’algorithme qui teste s’il s’agit
d’une lettre majuscule, si oui il renvoie cette lettre en minuscule, sinon il renvoie
un message d’erreur
´ Exercice 2 : on veut résoudre, dans l’ensemble des nombres réels, une équation du
second degré à coefficients réels.
a, b et c sont des réels non nuls, écrire l’algorithme qui retourne les racines
réelles de l’équation suivante : ax2 + bx +c = 0
Expression
T1 T2 T3 T4
4
10/10/2021
En pseudo-langage, on écrira
CAS (expression)
valeur1 : T1;
valeur2 : DEBUT
T21;
T22;
FIN
valeur3 : T3;
valeur4 : T4;
AUTRE T_autre;
FIN CAS
adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 9
´ Exemple : On désire calculer le salaire net (SN) d’un employé en tenant compte du
nombre de personnes à charge. Le tableau des déductions par rapport au nombre de
personnes à charge est le suivant : Nombre de Déductions du salaire
personnes à charge brut (SB)
0 20%
1 18%
2 15%
´ Ecrire l’algorithme qui lit les données suivantes : 3 13%
´ le nombre de personnes à charge (pers_ch de type entier) 4 ou 5 10%
6 et plus 08%
´ le nombre d’heures de travail (nb_heur de type entier)
´ le taux horaire (taux de type réel)
´ Puis calcule le salaire net ?
10
5
10/10/2021
11
´ Exercice : Écrire l’algorithme qui lit un caractère et vérifie s’il est une lettre, un
chiffre ou un caractère spécial.
ALGORITHME exemple2_CAS
VARIABLES
C : CARACTERE;
DEBUT
ECRIRE("Entrez un caractère :");
LIRE(C) ;
CAS (C)
‘ a ’ … ‘ z ’ , ‘ A ’ … ‘ Z ’ : ECRIRE(C , " est une lettre");
‘0’…‘9’ : ECRIRE(C , " est un chiffre");
AURTE : ECRIRE(C , " est un caractère spécial");
FIN CAS
FIN
12
6
10/10/2021
Structures itératives
condition
´ Il existe trois structures de répétition : Vraie ?
non
oui
´ La boucle POUR
bloc d'instructions
13
La boucle POUR
14
7
10/10/2021
La boucle POUR
FIN
15
La boucle POUR
16
8
10/10/2021
17
´ Exemple : Une suite S de nombres non nuls est saisie au clavier. La fin de S est
marquée par un nombre nul. Écrire l’algorithme qui affiche les variables (Pos) et
(Neg) représentant respectivement le nombre de valeurs positives et le nombre de
valeurs négatives
18
9
10/10/2021
19
La boucle REPETER
REPETER
Bloc d’instructions;
JUSQU’A CE QUE (expression soit Vraie)
b lo c d '
in s tru c tio n s
O ui
c o n d itio n
N on v ra ie
s u ite d u p ro g ra m m e
20
10
10/10/2021
´ Calculer la somme des n premiers entiers positifs, par additions successives des
entiers : Somme = 1+2+…+N.
21
22
11
10/10/2021
23
24
12
10/10/2021
Exercices
´ Exercice 1 : Écrire l’algorithme qui calcule le carré d’un entier saisi au clavier.
´ Exercice 2 : Écrire l’algorithme qui saisie un prix unitaire, une quantité et qui
calcule le prix total.
´ Exercice 3 : Écrire l’algorithme qui lit deux nombres et les imprime dans l’ordre
croissant de leurs valeurs.
25
Exercices
´ Écrire l’algorithme qui lit en entrée le montant et fournit en sortie la remise net.
26
13
10/10/2021
Exercices
´ Donner la trace de l’algorithme suivant :
Variables I, J : entier ;
Début
I¬1;
Ecrire("Itération ", I);
Répéter
J¬1;
Tant que (J<4) Faire
Début de tant que
Ecrire("Itération ", J);
J ¬ J+1 ;
Ecrire(I, J) ;
Fin tant que
I ¬ I+1 ;
Jusqu’à (I=5)
Fin
27
14