Structures de contrôle

Parent Category: Informatique et réseaux Category: Algorithme

Généralités

On distingue les structures séquentielles, les structures conditionnelles et les structures répétitives.


Structure séquentielle

C'est la structure la plus simple car il y’a aucune condition, aucune répétition, toutes les institutions s'exécute de façon séquentielle (étape par étape)
Exemple:
debut
lire(a)
lire(b)
c←a
a←b
b←c
écrire(a,b)
fin


Structure conditionnelle

Elle est utilisée pour résoudre des problèmes ayant une ou plusieurs alternatives. On distingue la structure "si" et "cas où".

La structure conditionnelle "si"

Elle existe sous deux formes:
syntaxe:
premier cas:
si condition alors action
fin si

deuxième cas:
si condition alors action 1
sinon action 2
fin si

Sémantique (explication)

Les mots soulignés sont reconnus par l'ordinateur.
Condition est un booléen
action peut être soit une instruction, soit un ensemble d'instruction, soit une structure de contrôle.

Fonctionnement

Premier cas: On exécute "action" uniquement lorsque la condition est vraie.
Deuxième cas: On exécute "action 1" uniquement lorsque la condition est vraie, et on exécute "action 2" uniquement lorsque la condition est fausse.

Exemple 1:

Ecrire un algorithme qui permet de lire un entier et affiche sa valeur lorsqu'il est positif
Algorithme: nombre positif
var a:entier
debut
lire(a)
si a>0 alors
écrire(a)
fin si
fin

Exemple 2:

Ecrire un algorithme qui lit deux caractères et les affiches dans l'ordre alphabétique.

Algorithme: ordre_alphabet
var A,B: caractère
debut
lire(A)
lire(B)
si A<B alors
écrire(A,B)
sinon
écrire(B,A)
fin si
fin

La structure "cas où"

Syntaxe:

cas où
condition 1 : Action 1
condition 2 : action 2
condition n : action n
[ sinon
action n+1 ]
fin cas

Explications:

Les mots suivants sont reconnus par l'ordinateur: condition 1; condition 2; condition n sont des booléens, action 1; action 2; ...; action n. Chaque d'elle peuvent être soit une instruction, soit un ensemble.
On exécute action 1 uniquement lorsque condition 1 uniquement lorsque condition 1 est vraie et on exécute action 2 uniquement lorsque condition 2 est vraie et on exécute action n+1 lorsque condition n+1 est vraie.
Dès qu'une condition est vraie les autres conditions sont fausses.

Exemple 1: ax+b=0

Algorithme: equation-1
var a,b : réel
debut
lire(a)
lire(b)
cas où
a=0 et b=0 : écrire('infinité de solution')
a=0 et b≠0 : écrire('pas de solution')
a#0 : écrire('la solution est :', -b/a)
fin cas
fin

Exemple 2:

Algorithme: Equation_dégré_2
var a, b, c, x1, x1: réel
debut
lire(a)
lire(b)
lire(c)
cas où
a=0 et b≠0 et c≠0 : écrire('la solution est :' -b/c)
a=0 et b=0 et c=0 : écrire('infinité de solution')
a=0 et b=0 et c≠0 : écrire('pas de solution')
a≠0 et b**2-4*a*c<0 : écrire('pas de solution')
a≠0 et b**2-4*a*c=0 : écrire('la solution est :' -b/c)
a≠0 et b**2-4*a*c>0 : écrire('la solution est :', (-b*-D½)/2*a, (-b+D½)/2*a)
fin cas
fin

Exercice

Ecrire un algorithme qui lit 3 nombres et les affiches dans l'ordre croissant. Utilisez la structure "si" et le récrire avec "cas où".


Les structures itératives (répétitions ou boucles)

Encore appelé structure répétition ou boucle, les structures itératives permettent d'effectuer des traitements répétitifs, c'est-à-dire qu'on exécute une action plusieurs fois. Dans une boucle le nombre d'itération peut être connu d'avance ou pas.
Si le nombre d'itération n'est pas connu d'avance, on utilise un prédicat (une condition) pour mettre fin à l'itération. On distingue:

  • La boucle "pour"
  • La boucle "tant que"
  • La boucle "répéter"

La boucle "pour"

On utilise la boucle "pour" lorsqu'on connaît d'avance le nombre d'itération à effectuer, c'est-à-dire lorsqu'on connaît le nombre de fois qu'on doit exécuter une action.
Exemple: Ecrire un algorithme qui permet de lire 10 notes

La syntaxe:

pour compteur = N à M faire [pas]
action
fin pour

Sémantique

Les mots en gras sont reconnus par l'ordinateur.
Compteur est un objet intermédiaire de type entier, il a pour première valeur N. M est la valeur finale de compteur.
pas est un objet intermédiaire de type entier, c'est un objet optionnel qui a pour valeur par défaut "1", et dans ce cas on ne le précise pas.
action peut être soit une instruction, soit un ensemble d'instruction, soit une structure de contrôle.

Comment fonctionner la boucle "pour"

On exécute action pour les valeur de compteur allant de N à M en fonction du pas.
Exemple:
(((((N+pas)+pas)+pas)+pas)+pas)/M

Exemple 1:

Ecrire un algorithme qui permet de lire 5 notes.
Algorithme: lecture_notes
var note: réel
i: entier
debut
pour i=1 à 5 faire
lire(note)
fin pour
fin

Exemple 2:

Ecrire un algorithme qui calcul xN où x est différent de 0 et N supérieur ou égale à 0.
Algorithme: puissance
var p, x: réel
i, n: entier
debut
lire(x)
lire(n)
p←1
pour i=1 à n faire
p←x**p
fin pour
écrire(p)
fin

La boucle "tant que"

On utilise la boucle "tant que" lorsqu'on ne connaît pas d'avance le nombre de répétition à effectuer. Mais on connaît une condition d'arrêt.
Syntaxe:
tant que condition faire
action
fin tant que

Sémantique

Les mots en gras sont reconnus par l'ordinateur.
condition est un booléen
action peut être une instruction, soit un ensemble d'instruction, soit une structure de contrôle.

Fonctionnement

On exécute "action" tant que la condition est vraie, on arrête l'exécution lorsque la condition devient fausse.
Si initialement la condition est fausse on n'exécute pas action.

Exemple 1:

Ecrire un algorithme qui permet d'écrire un nombre strictement positif.
Algorithme: nombre_positif
var N: réel
debut
lire(N)
tant que N<=0 faire
lire(N)
fin tant que
Fin

Exercice 2

Ecrire un algorithme qui permet de lire les nombres compris entre 1 et 3
Algorithme: lecture_en_interval
var n: réel
debut
lire(n)
tant que (n<1) ou (n>3) faire
lire(n)
fin tant que
fin

Tous les problèmes qu'on peut résoudre avec la boucle "pour" peut également se résoudre dans la boucle "tant que"

Boucle "répéter"

On utilise la boucle "répéter" dans les mêmes conditions que la boucle "tant que", c'est-à-dire lorsqu'on ne connaît pas d'avance le nombre de répétition à effectuer.

Syntaxe

répéter
Action
jusqu'à condition

Les mots soulignés sont reconnus par l'ordinateur

Sémantique

action peut être une instruction, un ensemble d'instruction ou une structure de contrôle.
condition est un booléen qui vaut vrai ou faux.

Fonctionnement

On exécute action jusqu'à ce que la condition devienne vraie, autrement dit on exécute action tant que la condition est fausse.

Exemple:

Algorithme: nombre_positif
var N: réel
debut
répéter
lire(N)
jusqu'à N>0
Fin

Exercice:

Ecrire un algorithme qui lit un nombre entier n>1 et qui affiche la table de multiplication correspondante.

correction:

Algorithme: table_de_multiplication
var i, n: entier
debut
répéter
lire(n)
jusqu'à n>1
pour i=1 à 10 faire
écrire(i,'x',n'=',i*n)
fin pour
fin