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