STRUCTURES DE CONTROLE
I-LES STRUCTURES
SEQUENTIELLES (ou bloc d’actions)
La structure séquentielle est une
structure dont les instructions sont exécutées les unes après les autres de
façon à ce que l’ordre des instructions soit respecté.
Exemple : Algorithme qui permet le calcul du volume d’un cylindre
de rayon de base R et de hauteur h.
Ecrire S
|
Code : Algorithme
VolumeCylindre Const Pi=3.14 ; VarR, h,
V : réels ; Début Ecrire (" Entrer le rayon du
cylindre R : "), Lire
(R) ; Ecrire (" Entrer la hauteur du
cylindre h :" ), Lire (h) ; V ←
Pi*R*R*h ; Ecrire (" Le volume du cylindre V
est :" , V) ; Fin |
II- LES
STRUCTURES CONDITIONNELLES (ou alternatives)
On appelle condition, toute expression logique dont l’évaluation donne VRAI
ou FAUX. En algorithmique, on rencontre les conditions faisant intervenir des
valeurs prises par une ou plusieurs variables : opérations arithmétiques,
relationnelles ou logiques.
1-Structure conditionnelle simple (un choix)
Syntaxe : S IconditionALORS
Traitements
FinSI |
Organigramme :
|
Exemple
Un algorithme qui calcule le maximum de deux
nombres réels.
Algorithme
Maximum |
2-Structure conditionnelle
complète (deux choix)
Syntaxe : SIcondition ALORS //
Traitements1 SINON // Traitements2 FinSi |
Organigramme :
|
Illustration:
Indiquez la route qui
mène à la maison à un touriste
SI la rue à droite
est autorisée à la circulation ALORS
-tourner à droite
-prendre la deuxième rue
à gauche
SINON
-continuer jusqu’à la
prochaine rue à droite
-prendre cette rue
-prendre la deuxième à
droite
FinSi
Exemple
Un algorithme qui demande un nombre entier à
l’utilisateur, et l’informe ensuite si ce nombre
est positif ou négatif
|
3-Structure alternative imbriquée
Syntaxe : Si condition1Alors //Traitements1
Sinon Si condition 2Alors // Traitements2 ; Sinon // Traitements3 ; Fin si Fin si |
|
Exemple : Etat de l’eau selon sa température (glaçon, liquide,
vapeur) SI la température
de l’eau est inférieure à 0° ALORS - C’est la glace SINON SI La température de l’eau est
supérieure à 0 et inférieure à 100°
ALORS § C’est du
liquide SINON -C’est la
vapeur FinSi FinSi |
Code : Algorithme etatEau Variables A,
B : booléens ; Temp : réel ; Début Lire(Temp) ; A←Temp<=0 ; B←0<Temp<100 ; SI A ALORS Ecrire (‘’C’est la
glace ‘’) ; SINON SI B ALORS Ecrire (’’ C’est le
liquide’’) ; SINON Ecrire (‘’ C’est la vapeur’’) ; FinSi FinSi Fin |
III- LES
STRUCTURES ITERATIVES
On utilise
les schémas itératifs lorsqu’on veut exécuter une liste d’actions plusieurs
fois. Le nombre d’itérations peut être connu ou non. Dans certains cas, on
utilise certaines conditions pour contrôler le déroulement des
itérations ; on distingue entre autres :
·
La
structure itérative complète ou la structure POUR … FAIRE …
·
Les
structures répétitives à condition d’arrêt, composées de deux structures :
_ la structure REPETER … JUSQU’A …
_ la structure TANT
QUE … FAIRE …
Ainsi quand
on a à écrire une répétitive, on doit d’abord poser la question suivante :
est- ce qu’on connait le nombre d’itérations à faire dans la boucle ?
Après analyse si la réponse est affirmative on utilise ‘’ POUR ‘’ sinon on utilise ‘’TANT QUE’’ ou REPETER
Instruction
d’incrémentation/décrémentation.
L’incrémentation (tout comme la
décrémentation) est beaucoup rencontrée dans les structures à boucle.
C'est-à-dire dans les structures répétitives. En effet, on peut les assimiler à
des compteurs qui, à chaque cycle augmentent ou diminue de 1.Les
variables les plus impliquées à cette opération sont les variables de contrôle.
On les représente par :
i ← i+1
incrémentation veut dire ’’Ajouter 1 à la valeur actuelle de i’’.
j← j-1 décrémentation veut dire ‘’Retrancher 1 à
la valeur actuelle de j’’.
Attention :
Il faut généralement
initialiser i et j appelés souvent compteurs. Exemple i=0
1-La
structure itérative complète (POUR...FAIRE)
Une
structure itérative est dite complète si le nombre de répétition est connu
d’avance. Cette structure est caractérisée par :
-l’initialisation
automatique du compteur à une valeur initiale Vi
-l’incrémentation/décrémentation
du compteur à chaque répétition
-vérification
du compteur pour qu’il ne dépasse pas la valeur finale Vf
Syntaxe : POUR Cp deVià VfPAS de 1FAIRE Instruction 1 Instruction 2 …. Instruction n FinPOUR Cp ;
compteur ; Vi =Valeur
initiale ; Vf=Valeur
finale PAS= valeur
de l’incrémentation |
Organigramme : |
Exemple : Calculer la somme des 9 premiers
chiffres
Algorithme SommeEntiers Variable Somme :
entiers ; Début
POUR i=1 à 9 FAIRE
FinPour ECRIRE (‘’ La somme est :’’, Somme) ; Fin |
2-Les structures
itératives à condition d’arrêt
Une structure itérative est dite à
condition d’arrêt si le nombre d’itérations n’est pas connu d’avance, mais il
dépend d’une condition.
2.1- La structure ‘’TANT QUE …FAIRE ‘’
Avec la structure « TANT QUE », le nombre
d’itérations n’est pas à priori connu : Soit c la condition qui prend la
valeur « VRAIE » ou « FAUSSE », chaque itération
commence par l’évaluation de la condition. Une condition est une comparaison.
Elle est composée de 3 éléments : une valeur, un opérateur de comparaison
et une autre valeur :
-si la valeur de la condition est vraie, alors on
exécute la liste d’action. Les itérations se poursuivent jusqu’à ce que la
condition c deviennent fausse :
-si la valeur de la condition est fausse, on n’exécute
pas les actions de tant que
Syntaxe : TANT QUE condition(s)FAIRE // Traitements Fin
TANT QUE |
Organigramme : |
Illustration:
Consignes de l’Inspecteur
au professeur à la fin de la séquence.
TANT QUE moyenne générale de la classe est
inférieure à 10 FAIRE
-reprendre les leçons de la séquence
-organiser des cours de rattrapage
-réévaluer les élèves
FIN TANT QUE
Exemple :
Algorithme Application Var
i,n :entiers ; Début i←1 ; Tant que i<=10 faire Ecrire (" l’itération est
exécutée ") ; i←i+1 FinTant que Fin |
2.2- La structure « REPETER…JUSQU'A »
La structure REPETER…JUSQU'A… est utilisée quand il s’agit de répéter un
traitement un nombre de fois inconnu à l’avance et qu’on est sûr que le
traitement itératif s’exécutera au moins une fois. Dès que la condition
d’arrêt devient vraie, la boucle est abandonnée et le programme continue en
séquence.
La structure
« REPETER » commence par l’exécution de la liste d’actions. On évalue
ensuite la condition :
- si la valeur
est fausse, alors, on continue le processus d’itérations
-si par contre, après évaluation de la
condition, on trouve qu’elle a pour valeur VRAIE, on sort de la boucle.
Syntaxe : REPETER Instruction 1 Instruction 2 …. …. Instruction n JUSQU'A condition(s) d’arrêt |
|
Illustration: Consignes du médecin au malade diabétique
REPETER
-
Le
traitement prescrit
-
Injecter
l’insuline
-
Pratiquer le
sport
JUSQU'A ce que le taux de glycémie baisse à
1,3g/l
Exemple :
Ecrire un algorithme
qui dit plusieurs fois « bonjour Monsieur ».
Algorithme bonjour Var
i :entier ; Début i←1 ; Répéter Ecrire (" bonjour Monsieur") ; i←i+1 ; Jusqu’à i>10 Fin |
Propriétés
1-
Quelle que
soit la valeur initiale des conditions, la liste d’action est exécutée au moins une fois
2-
Il doit
avoir au moins une action qui met à jour la valeur de la condition.
EXERCICES
EXERCICES I:
Exécuter manuellement l’algorithme suivant et
déduisez les valeurs finales des variables a, b et c pour chacune des valeurs
initiales suivantes de a.
i)
a=10
ii)
a=3
iii)
a=0
Algorithme_Application
Début
Ecrire
(« a= ») ;
Lire(a) ;
b←2a ;
c←b-4 ;
Si a>2c alors
b←a-2c ;
sinon
b← a+c ;
FinSi
Ecrire (a, b, c) ;
Fin
EXERCICE II: Soit l’algorithme
Suivant :
Algorithme SimpleOuDouble
Const C=10 ;
Var
V : entier ;
Début
Ecrire ("Donnez-moi un
entier : ") ;
Lire (V) ;
SI V< C ALORS
V ←V*2 ;
Ecrire ("Voici son
double :’’, V) ;
SINON
Ecrire ("Voici la valeur
inchangée :’’, V) ;
FinSI
Fin
Question : Quels seront les contenus
de la variable V après exécution de cet algorithme si au départ, on avait saisi
les valeurs 5, 20 et 9 pour V ?
EXERCICE III:
Soit
l’algorithme suivant :
1.Algorithme Calcul
2.
Variable : X, A, B, i : entiers
3.
Début :
4. Ecrire (« Entrer X et
A ») ;
5. Lire (X, A) ;
6. B ←1 ;
7. Pour i allant
de 1 à X pas =1 Faire
8 B←B*A ;
9. FinPour
10. Ecrire (« résultat= », B) ;
12. Fin
En
vous servant de vos connaissances en algorithmique, répondre aux questions
suivantes :
1.
Définir : variable, constante.
2.a-
Identifier dans cet algorithme deux variables.
b-Que fait la ligne
6 ?
3.
Identifier la structure de contrôle utilisée dans cet algorithme.
4.
Donner la trace d’exécution de cet algorithme pour X=4 et A=3 ;
EXERCICE IV: Soit l’algorithme suivant:
Algorithme
var somme, note :
Réels ;
var reponse : Caractère ;
Début
somme ← 0 ;
Ecrire(« Voulez-vous
saisir une note o/n ? ») ;
Lire(reponse) ;
Tant que (reponse= « o »)
faire
Ecrire(« saisir une
note ») ;
Lire(note) ;
Somme
←somme*+ note ;
Ecrire (« Voulez-vous
saisir une note o/n ? ») ;
Lire(reponse) ;
Fin Tant
que
Ecrire (« La somme des
notes est : » , somme) ;
Fin
Questions :
1. Citer les différents types de variables
qui sont déclarés.
2. Si un utilisateur saisit les
notes : 3, puis 4, puis 12. Quel sera le contenu de la variable somme à la
fin du traitement ?
a)
12 b) 7 c) 19 d)
17
3. Que fait cet algorithme ?
4. Est-ce que l’utilisateur peut ne saisir
aucune note ? Justifier votre réponse.
5. Dans le contexte de la programmation que
fait l’instruction de lecture ?
EXERCICE V :
1-Ecrire un algorithme
qui affiche la parité d’un nombre qu’on lui fournit.
2-Concevez un algorithme qui permet de calculer le PGCD de deux nombres
non nuls A et B.
3-Ecrire un algorithme qui fait la moyenne de 100 notes des élèves
d’une promotion.
EXERCICE
VI :
1-Concevez un algorithme qui
affiche « Reçu avec mention » si une note est supérieure ou
égale à 12, « Passable » si elle est supérieure à 12 et inférieure à
12 et « insuffisant » dans tous les autres cas.
2- Concevez
un algorithme qui permet de résoudre l’équation ax
+b=0 ; a et b étant les
coefficients entiers naturels non nuls de cette équation.
EXERCICE VII:
Soit l’algorithme
suivant :
1.Algorithme Boucle1
2. Variable i ,
y : Entiers ;
3.Début
4. i ←
2 ;
5. y ←
0 ;
6. Tant
Que (i<7) faire
7. i ← i+1 ;
8. y
← y+i ;
9. Écrire
(' Y = ' , y) ;
10. Fin
Tantque
11. Écrire (‘I=‘, i, ’Y=‘,y) ;
12.
13.Fin
En vous servant de vos connaissances
en algorithmique, répondez aux questions suivantes :
a. Identifiez dans cet algorithme une structure
de contrôle.
b. Donnez le nombre d’instructions que comporte
cet algorithme et énumérez-les.
c. Donnez la trace d’exécution de cet
algorithme
CORRIGES
EXERCICE I
i. a=10 b=26
c=16
ii.a=3 b=5
c=2
iii.a=0 b=8
c=-4
EXERCICEII :
Pour la valeur 5 ;
V=10 ; pour la valeur 20 : V=20 et pour la valeur 9 : V=18
EXERCICE III:
1. Variable :
objet dont le contenu peut changer par une action lors de l’exécution d’un
algorithme
2.
Deux variables : A, B,X,i.
3.
la structure de contrôle utilisée dans cet algorithme :
Pour i allant de 1 à X pas =1 Faire
B←B*A ;
FinPour
4.
C’est une structure itérative complète.
5.
Trace d’exécution de cet algorithme pour X=4 et A=3 ;
Ligne |
i |
Instructions |
B |
écran |
7 |
1 |
B←B*A =1*3=; |
3 |
|
8 |
2 |
B=3*3= |
9 |
|
8 |
3 |
B=9*3= |
27 |
|
8 |
4 |
B=27*3= |
81 |
|
10 |
|
|
|
B=81 |
EXERCICE
IV :
1. Réel et caractère
2. c)19
3. Calcule la somme des notes
4. Oui. Il suffit d’attribuer
la valeur « n » à réponse et le programme s’arrête.
5. L’instruction de lecture
demande à la machine de lire une valeur saisie par un utilisateur à partir du
clavier ou de lire une valeur contenue dans une mémoire de stockage. Elle se
réduit au verbe LIRE. Lire est donc
un ordre de traitement ou une action simple à exécuter.
EXERCICE
V :
1-Parité
Algorithme NatureNombre ;
Var x :entier ;
Début
Ecrire(‘’ x=
‘’ ) ;
Lire(x) ;
r ← x mod 2 ;
Si r=0 alors
Nature← ‘’Paire ‘’ ;
Sinon
Nature← ‘’impaire ‘’ ;
FinSi
Ecrire (x, ‘’est ‘’,Nature) ;
Fin
2.Algorithme CalculPgcd
Variable A, B :
entiers ;
Début
Ecrire (‘’ A =’’ ), Lire(A) ;
Ecrire (‘’ B = ‘’ ),
Lire(B) ;
Tant que NOT ( A*B =0) Faire
Si A > B alors
A ← A-B ;
Sinon
B ← B-A ;
FinSi
Fin Tant que
Si A=0 alors
Ecrire
(‘’ pgcd= ‘’, B) ;
Sinon
Ecrire
(‘’ pgcd= ‘’, A) ;
FinSi
Fin
2.
Algorithme Moyenne
3.
Var Som,i : naturels,
4.
Notes : tableau[1…100 ] d’entiers
5.
Début
6.
Som←0 ;
7.
Pour i←1 à 100 Faire
8.
Ecrire (‘’Entrer la note numéro : ‘’,i) ;
9.
Lire (Notes[i]) ;
10.
FinPour
11.
Pour i←1 à 100 Faire
12.
Som←Som + Notes[i] ;
13.
FinPour
14.
Ecrire (“La moyenne
est de : ”, Som/100) ;
15.
Fin
EXERCICE VI :
1. Algorithme ReçuAvecMention
Var note : réel ;
Début
Ecrire (‘’ Saisir une note : ‘’), Lire (note) ;
Si note >=12 alors
Ecrire
(‘’ Reçu avec mention ‘’)
Sinon si note >= 10 alors
Ecrire
(‘’ Passable ‘’) ;
Sinon
Ecrire
(‘’ insuffisant ‘’) ;
FinSi
Fin
2. Algorithme EquationPremierDégré
Var a, b, x, S : réels ;
Début
Ecrire
(‘’ a= ‘’), Lire (a) ;
Ecrire
(‘’ b= ‘’), Lire(b) ;
Si (a=0) et (b=0) alors
Ecrire
(‘’ solution infinie ‘’) ;
Sinon si (a=0) et (b != 0) alors
Ecrire
(‘’pas de solution dans R ‘’) ;
Sinon
S ← -b/a ;
Ecrire
(‘’solution unique ‘’, S) ;
Fin
EXERCICE VII
a.
Tant
Que (i<7)
faire
i ←
i+1 ;
y ← y+i ;
Écrire
(' Y = ‘, y) ;
FinTantque
b. 04 instructions d’affection
03 instructions d’écriture
02 instructions d’incrémentation
c. Trace d’exécution de cet
algorithme
Ligne |
i |
Instructions |
écran |
|
|
|
|
|
2 |
I<7 vrai, on entre dans la boucle y=0 I prend la valeur 3 |
|
|
3 |
I<7 vrai , on entre
dans la boucle y=0+3=3 I prend la valeur 4 |
|
|
4 |
I<7 vrai on entre dans la boucle y=3+4=7 I prend la valeur 5 |
|
|
5 |
I<7 vrai on entre dans la boucle y=7+5=12 I prend la valeur 6 |
|
|
6 |
I<7 vrai on entre dans la boucle y=12+6=18 I prend la valeur 7 |
|
|
7 |
I<7 Faux, on sort de la boucle |
I=7 Y=18 |