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.

 

Ellipse: DébutOrganigramme :

 

 

 

 

 

 

 

 

 

 

 

 

 


                          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
Variable A, B, Max : réel ;
Début
Ecrire ('Entrez les valeurs de A et de B: ') ;
.       Lire (A , B) ;
Max ←A ;
.      Si Max < B Alors
.              Max← B ;
.Fin si
.        Ecrire (' Le maximum est égale à :', Max) ;
Fin.

 

 

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

Algorithme Nature_nombre;
Variable n : Entier ;
Début
        Ecrire ('Entrez un nombre : ') ;
.       Lire( n) ;
.       Si n > 0 Alors
.              Ecrire ('Ce nombre est positif' ) ;
.          Sinon
.              Ecrire ('Ce nombre est négatif' ) ;
.        Fin si
Fin.

 

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

            Somme              0 ;                           /* initialisation*/

 

            POUR i=1 à 9 FAIRE

                        Somme            Somme +i ;

                        i                  i  + 1

            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

 

 

 

 

 

 

 

 

Organigramme :Losange: ConditionnnZone de Texte:             Actions

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

                        ba+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.                    yy+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