Vous êtes sur la page 1sur 16

K.

Zabo Les structures de contrle Centre Universitaire Professionnalis

Chapitre 2:
Les structures de contrle:
notions fondamentales
Introduction
Les structures conditionnelles
Les boucles
La dmarche itrative

Introduction
En programmation procdurale comme en algorithmique (qui respecte les contraintes
fondamentales de la programmation!), l'ordre des instructions est primordial.

Le processeur excute les instructions dans l'ordre dans lequel elles apparaissent dans le
programme. On dit que l'excution est squentielle.

Une fois que le programme a fini une instruction, il passe la suivante. Tant qu'une
instruction n'est pas termine, il attend avant de continuer. Par exemple, une instruction de
saisie va attendre que l'utilisateur rentre une valeur au clavier avant de continuer.

Parfois, il est ncessaire que le processeur n'excute pas toutes les instructions, ou encore
qu'il recommence plusieurs fois les mmes instructions. Pour cela, il faudra casser la
squence. C'est le rle des structures de contrle.

Il existe deux grands types de structures de contrle:


- les structures conditionnelles vont permettre de n'excuter certaines instructions que
sous certaines conditions
- les structures rptitives, encore appeles boucles, vont permettre de rpter des
instructions un certain nombre de fois, sous certaines conditions

I. Les structures conditionnelles

A. Prsentation

Les structures conditionnelles permettent d'excuter des instructions diffrentes en fonction


de certaines conditions. Une condition (encore appele expression conditionnelle ou logique)
est value, c'est dire qu'elle est juge vrai ou fausse. Si elle est vraie, un traitement (une
ou plusieurs instructions) est ralis; si la condition est fausse, une autre instruction va tre
excute, et ensuite le programme va continuer normalement.

Il existe 2 types principaux de structures conditionnelles


1

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

- les structures alternatives (SiAlorsSinon)


- les structures conditionnelles au sens strict (SiAlors)

Dans le droulement d'un algorithme, on doit souvent choisir entre deux actions, suivant une
condition concernant la valeur de certaines donnes. La structure alternative va permettre
d'effectuer des choix.

Supposons que nous ayons besoin, dans un programme, d'crire un message prcisant si la
valeur d'une variable, nomme a, est positive ou ngative.

Pour cela on va utiliser la structure alternative

Afficher "entrez un nombre"


Saisir n
Si n > 0
Alors //dans le cas o lexpression n>0 est vraie Afficher
"valeur positive"
Sinon //dans le cas o lexpression n>0 est fausse Afficher
"valeur ngative ou nulle"
Finsi

Si la condition n < 0 mentionne aprs le mot Si est vraie, on excute ce qui figure aprs le
mot Alors; si la condition est fausse, on excute ce qui figure aprs le mot Sinon.

La syntaxe gnrale de cette structure est la suivante:

Si<condition>
Alors <traitement1>
Sinon <traitement2>
Finsi

Pour une meilleure lisibilit du programme, on dcale le Alors et le Sinon par rapport au Si.
On faire apparatre un trait vertical Si et Finsi.
Pour l'instant cela peut paratre superflu, mais en fait quand les programmes se compliquent,
ces rgles d'criture facilitent grandement leur relecture.

Rappelons que les traitements apparaissant aprs les mots Alors et Sinon peuvent tre
constitus d'une instruction simple, comme dans notre premier exemple, mais aussi d'un
ensemble d'instructions, appel bloc d'instruction.

Exemple de structure alternative avec bloc d'instruction

Nous voulons un programme qui mmorise et affiche la somme ou le produit de 2 nombres,


suivant le choix de l'utilisateur. Ce programme doit saisir les deux nombres voulus ainsi que
la lettre reprsentant l'opration effectuer. Si la lettre est s (comme somme), il calcule et
affiche la somme, et si la lettre est p (ou tout autre caractre), le programme doit calculer et
afficher le produit.

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

Programme choix var


nb1,nb2, res: entiers op :
caractre

Dbut

Afficher "Entrez deux nombres"


Saisir nb1, nb2
Afficher "entrez la premire lettre de l'opration voulue"
Saisir op

Si op = "s"
Alors res nb1 + nb2
afficher "la somme est", res bloc n1
Sinon res nb1 * nb2
afficher "le produit est", res
Finsi bloc n2
Fin

B. Les expressions conditionnelles

Une expression conditionnelle (ou expression logique, ou expression boolenne) est une
expression dont la valeur est soit VRAI soit FAUX. Il existe plusieurs types dexpressions
conditionnelles.

1. Les comparaisons simples

Dans nos deux exemples, les conditions que nous avons rencontr (a < 0) et (op ="s") sont des
conditions simples. Une condition simple est une comparaison de deux expressions de mme
type. (a<0 type entier ou rel, op = "s" type caractre)

Les symboles de comparaison utilisable en algorithmique sont:

Pour les comparaisons de caractres, on utilise l'ordre ASCII, qui respecte lordre
alphabtique. Une lettre place avant une autre dans l'ordre alphabtique sera infrieure
l'autre.
"a" est infrieur "b", mais "s" est suprieur "m".

Attention, une condition simple ne veut pas dire une condition courte. Une condition simple
peut tre la comparaison de deux expressions comme:
(a + b - 3) * c (5 * y 2) / 3

Application

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

Supposons que nous voulions afficher la valeur absolue de la diffrence entre deux nombres
entiers. Ces nombres entiers seront nots x et y.
Nous voulons donc afficher x y si x est plus grand que y et y x sinon.

Nous cririons pour ce faire:

Si x > y
Alors Afficher x y
Sinon Afficher y x
Finsi

2. Les conditions complexes

Les conditions (ou expressions conditionnelles) peuvent aussi tre complexes, c'est dire
formes de plusieurs conditions simples ou variables boolennes relies entre elles par les
oprateurs logiques et, ou, non.

Exemples:
Si a < 0 et b < 0
Alors
Si (a +3 = b et c < 0) ou (a = c *2 et b c) Alors

Et

Une condition compose de deux conditions simples relies par et est vraie si les deux
conditions sont vraies.
La condition a < 0 et
b<0
est vraie si a < 0 est vraie et si b < 0 est vraie

Ou

Une condition compose de deux conditions simples spares par ou est vraie si au mois l'une
des conditions simples est vraie.
a <0 ou b < 0
est vraie si a < 0 ou si b < 0 ou si a et b sont ngatifs.

Non

Une conditions prcde par non est vraie si la condition simple est fausse et inversement.
non (a < 0) est vraie si a >=0

L'usage des parenthses permet de rgler d'ventuels problmes de priorits des oprateurs
logiques.

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

3. Les variables boolennes

Les variables boolennes, comme les expressions conditionnelles, sont soit vraies, soit
fausses. On peut donc affecter une expression conditionnelle un boolen et on peut aussi
trouver une variable boolenne la place dune expression conditionnelle.
Les variables boolennes et les expressions conditionnelles sont quivalentes. A chaque fois
que lon peut trouver une expression conditionnelle, on peut aussi trouver une variable
boolenne.

Ex :

Programme intervalles Var


appartient : boolen
nb : rel
Dbut
Afficher veuillez entrer un nombre rel Saisir
nb
appartient = (nb<10 ET nb> 5) OU (nb >15 ET nb <20)
Si appartient
Alors Le nombre appartient aux intervalles dfinies
Sinon Le nombre nappartient pas aux intervalles dfinies
Finsi
Fin

Ce programme saisit un nombre et affiche si ce nombre est compris dans les intervalles 510
ou 15-20

II. La structure SiAlors (conditionelle)


Cette structure est utilise si on veut excuter une instruction seulement si une condition est
vraie et ne rien faire si la condition est fausse. Elle vite dcrire Sinon rien.

La syntaxe d'une structure conditionnelle est la suivante:

Si <condition> Alors
<traitement>
Finsi

Exemple:
Dans un programme de calcul d'une facture, on veut effectuer une remise de 1% si le montant
de la facture dpasse 1000F.
Supposons que la variable qui contient le montant de la facture s'appelle mont. On veut crire
l'algorithme qui affiche le montant payer.

Si le montant est infrieur 1000F, on veut juste afficher le montant tel quel. Mais si le
montant est suprieur 1000F, il faut prendre en compte la remise et calculer le nouveau
montant.
5

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

Le morceau d'algorithme concern est:


Si mont > 1000 Alors mont
= mont * 0.9
Finsi
Afficher mont

Le programme effectue la rduction seulement si le montant est suprieur 1000F. Sinon, il


ne fait aucun traitement particulier et passe l'instruction suivante. Dans tous les cas, le
montant est affich.

III. Les structures rptitives ou boucles


Les structures rptitives aussi appeles boucles, permettent de rpter un
traitement ( c'est dire une instruction simple ou compose) autant de fois qu'il
est ncessaire: soit un nombre dtermin de fois, soit tant qu'une condition est
vraie.
Il existe trois grands types principaux de structures rptitives:
- la structure Tant queFaire, qui permet d'effectuer une instruction tant qu'une
condition est satisfaite
- la structure Pour qui permet de rpter une instruction un certain nombre de fois - la
structure RpterJusqu', qui comme son nom l'indique, permet de rpter une
instruction jusqu' ce qu'une condition soit satisfaite.

Seule la boucle Tant que est fondamentale. Avec cette boucle, on peut raliser toutes
les autres boucles alors que l'inverse n'est pas vrai. La boucle Pour est trs utilise aussi car
elle permet de simplifier la boucle Tantque lorsque le nombre de tour de boucle est connu
davance. La boucle Rpter, trs peu utilise, sera tudie au chapitre suivant.

A. La boucle Tant que Faire

La boucle Tant que Faire permet de rpter un traitement tant qu'une expression
conditionnelle est vraie. Si d'emble, la condition n'est pas vraie, le traitement ne sera
pas excut. On voit donc que la boucle Tant que a un point commun avec la structure
conditionnelle o si la condition n'est pas vraie, le traitement n'est pas excut.

Syntaxe:
Tant que <condition d'excution> Faire

<traitement> // instruction simple ou bloc d'instructions

FinTantque

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

Supposons que l'on veuille que l'algorithme calcule le cube des nombres qu'on lui fournit et
que pour arrter, l'utilisateur doive entrer 0.
Si le nombre saisi est 0, on ne veut pas afficher le cube et le traitement est termin. Si le
nombre saisi est diffrent de 0, on affiche son cube et on recommence (on demande d'entrer
un nombre, on le saisit, etc)
On veut donc excuter les instructions dans l'ordre suivant:
saisir un nombre
vrifier la condition d'excution (x 0)
si x vaut 0, on sort de la boucle
sinon on affiche le cube et on attend que l'utilisateur entre un autre nombre
On vrifie la condition d'excution (x 0)
si x vaut 0, on sort de la boucle
sinon on affiche le cube et on attend que l'utilisateur entre un autre nombre

On voit donc qu'aprs la saisie du premier nombre, on rpte les trois dernires instructions.
On va donc pouvoir les inscrire dans une boucle. La condition de continuation (x 0) est
inscrite aprs le tant que. Cette condition est vrifie chaque fois qu'on a termin les
traitements de la boucle.
Programme cube

Var
x : Entier

Dbut
Afficher "Ce programme calcul le cube des nombres que vous entrez. Pour arrter tapez 0."
Afficher "Entrez un nombre"
Saisir x
Tant que x 0 Faire
Afficher "le cube de " , x , " est ", x*x*x
Afficher "Entrez un nombre ou 0 pour arrter"
Saisir x
FinTQ
Afficher "Fin"
Fin

Le nombre de rptition du traitement n'est pas indiqu explicitement; il dpendra des


donnes fournies au programme, en l'occurrence les nombres entrs.

Fonctionnement de ce programme

Il affiche tout d'abord le libell de saisie et attend que l'utilisateur entre un nombre, qui est
alors saisi dans la variable x.
Ensuite, la condition qui suit le Tant que est value. Si l'utilisateur rentre comme premier
nombre 0, la condition est fausse et le corps de la boucle ne sera pas excut et le processeur
continuera la premire instruction suivant le FinTQ (Afficher "Fin"). Si l'utilisateur entre
un nombre diffrent de 0, son cube est calcul et affich et un nouveau nombre est saisi. Au
niveau du FinTQ, le processeur effectue un branchement, c'est dire qu'il n'effectue pas

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

l'instruction suivante mais retourne au dbut de la boucle et rvalue l'expression


conditionnelle.

L'utilisateur peut calculer autant de cubes qu'il dsire et quand il veut arrter, il lui suffit de
taper 0. On dit que 0 est une valeur drapeau, c'est--dire une valeur qui indique la fin d'un
traitement.

La trace d'un algorithme

La trace d'un algorithme reprsente la valeur des diffrentes informations d'un programme
durant son excution. Il est vivement conseill d'effectuer la trace d'un algorithme afin de
vrifier qu'il fonctionne.
La premire chose faire est de choisir des donnes sur lesquelles ont va effectuer le test de
l'algorithme. Pour ces donnes, on calcule la main le rsultat attendu. Puis on effectue la
trace et on compare le rsultat attendu avec le rsultat de la trace qui doivent tre les mmes
(sinon, il y a une erreur quelque part)

Effectuons la trace de l'algorithme prcdent avec les donnes suivantes donne


x rsultat attendu
10 affichage de 100
-3 affichage de -9
0 affichage de Fin et arrt du programme

Instruction excute variable ou valeur aprs affichage


expression value l'instruction l'cran
Afficher "Ce programme Ce programme calcule le cube
Afficher "Entrez un nombre" Entrez un nombre
saisir x x 10 10
Tant que x 0 x0 VRAI

afficher x*x*x x*x*x 100 100


Afficher "Entrez un nombre Entrez un nombre ou 0 pour
saisir x x -3 -3
Tant que x 0 x0 VRAI

afficher x*x*x x*x*x -9 -9


Afficher "Entrez un nombrex -3 Entrez un nombre ou 0 pour
saisir x x 0 0
Tant que x 0 x0 FAUX
Afficher "Fin" Fin

B. La boucle Pour

La boucle Pour permet de rpter une instruction un nombre connu de fois. Elle a le
formalisme suivant:

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

Pour < compteur> de <valeur initiale> jq <valeur finale> [pas de <incrment>] Faire

<traitement>

FinPour

Elle permet de faire la mme chose que la boucle Tant que mais de faon plus rapide, du
moins lorsque le nombre de rptition est connu.
La variable compteur est de type entier. Elle est initialise la valeur initiale. Le compteur
augmente (implicitement) de l'incrment chaque rptition du traitement.
Lorsque la variable compteur vaut la valeur finale, le traitement est excut une dernire
fois puis le programme sort de la boucle.
Par dfaut, lincrment est de 1

Exemple:

Pour x de 1 jq 20 Faire
x x+1 incrmentation
automatique <traitement>
FinPour

Grce une telle structure, le traitement va tre rpte 20 fois. On pourrait faire la mme
chose avec une boucle tant que, mais il faudrait initialiser la variable compteur et
l'incrmenter explicitement.

X 1
Tant que x <= 20 Faire
<traitement>
x x+1
FinTantQue

La boucle Pour est en fait une simplification de la boucle TantQue.

Application
Affichons la table de multiplication du 7. Pour cela on va utiliser une variable a qui varie de
1 10 et multiplier cette variable par 7 chaque incrmentation. Cette variable va aussi
servir de compteur pour la structure Pour.

Programme multiplication7
Var a:
Entier
Dbut
Pour a de 1 10 pas de 1
Afficher a, " * 7 = ", a * 7
FinPour
Fin

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

IV. La dmarche itrative


Une itration est une boucle o la valeur dune variable dpend de sa valeur au tour
prcdent. La variable en question se trouve la fois gauche et droite dune affectation.
La dmarche itrative (lutilisation ditrations) est utilise pour rsoudre beaucoup de
problmes de programmation. Pour se familiariser avec cette dmarche complexe, nous allons
tudier des problmes algorithmiques simples et fondamentaux.

A. Compter et Accumuler

1. Comment faire pour compter le nombre de tour de boucle


dans une boucle Tantque ? (comptage systmatique)

Reprenons le programme cube. Supposons maintenant que nous ayons besoin de compter
combien de cube ont t calcul. Comment procder ?

Il suffit dutiliser une variable qui va servir de compteur. Avant lentre dans la boucle, le
compteur est mis 0. Ce compteur est incrment de 1 chaque tour de boucle. Pour cela, on
ajoute linstruction compteur compteur + 1 lintrieur de la boucle: Une telle
instruction sappelle incrmentation.

Programme cube
Var
x : Entier
compteur : entier
Dbut
(cf III)
Tant que x 0 Faire
Afficher "le cube de " , x , " est ", x*x*x
compteur compteur + 1
Afficher "Entrez un nombre ou 0 pour arrter"
Saisir x
FinTantque
Afficher Vous avez demand , compteur, cubes Fin

2. Comment faire pour compter seulement les cubes ngatifs ?


(comptage slectif)

Si on ne veut augmenter le compteur que dans une certaine condition (ici, dans le cas o le
nombre saisi est ngatif), il suffit de placer lincrmentation lintrieur dune
structure conditionnelle.

Programme cube
Var
x : Entier
compteur : entier
Dbut
(cf III)
10

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

Tant que x 0 Faire


Afficher "le cube de " , x , " est ", x*x*x
Si x<0 Alors compteur compteur + 1
FinSi
Afficher "Entrez un nombre ou 0 pour arrter"
Saisir x
FinTantque
Afficher Vous avez obtenu , compteur, cubes ngatifs
Fin

3. Comment faire pour compter plusieurs choses la fois ?


(comptage multiple)

On peut vouloir compter plusieurs choses simultanment dans la mme boucle. Pour
reprendre notre exemple, nous pourrions vouloir compter les cubes ngatifs mais aussi les
cubes pairs. Dans ce cas, un seul compteur ne suffit plus. Il faut utiliser autant de compteur
que lon a de choses compter.

Programme cube
Var
x : entier
cptneg : entier // compteur des cubes ngatifs
cptpair :entier // compteur des cubes pairs
Dbut
(cf III)
Tant que x 0 Faire
Afficher "le cube de " , x , " est ", x*x*x
Si x<0 Alors
cptneg cptneg + 1
FinSi
Si x*x*x mod 2 = 0 Alors
cptpair cptpair + 1
FinSi
Afficher "Entrez un nombre ou 0 pour arrter"
Saisir x
FinTantque
Afficher Vous avez obtenu , cptnegr, cubes ngatifs, et , cptpair, cubes pairs Fin
4. Calculer le rsultat de xn avec une itration

Dans certains langages, loprateur exposant nexiste pas. Supposons que nous ne pouvons
pas lutiliser en algorithmique. Nous allons crire lalgorithme qui permet de calculer un
nombre un exposant donn. Le nombre x et lexposant n sont saisis.

Rappel :
x1=x
x2= x*x x1*x
x3= x*x*x x2*x
x4= x*x*x*x x3*x

11

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

On ne peut pas faire tout dun coup le nombre de multiplication ncessaire car on ne sait pas
combien vaut lexposant au moment d'crire le programme. Le programmeur ne sait pas quel
exposant va taper lutilisateur. Il y a une infinit de possibilits.
Pour contourner cette difficult, on va rpter n fois la multiplication par x dans une boucle.
On utilise la boucle pour car on sait combien de fois on rpte la multiplication : n fois.
Que fait-on du rsultat de la multiplication par x: on laffecte dans une variable rsultat, que
lon va utiliser au tour suivant. Quest-ce quon multiplie par x chaque tour : le rsultat du
tour prcdent.
Et au premier tour ? Il ny a pas encore de rsultat. Il suffit dinitialiser la variable rsultat
avec 1.

Do la solution suivante : Programme


exposant
Var
x, n : entier //x le nombre et n lexposant
Dbut
Aff veuillez entrez un nombre puis son exposant
Saisir x, n
res 1 //initialisation du rsultat
Pour i de 1 jusqu n Faire
res res * x //itration
FinPour
Aff x, puissance , n, vaut , res
Fin

La variable rsultat ne vaut vritablement le rsultat recherch qu la sortie de la boucle.


Entre temps, elle prend des valeurs intermdiaires qui servent avancer dune valeur initiale
connue vers la valeur finale recherche.

Effectuons la trace du morceau dalgorithme gris dans le cas o lutilisateur entre 5 pour x
et 4 pour n.

tour de boucle valeur de res


(valeur du compteur)
avant 1 grce linitialisation
1er (i1) 5 1 * x (x vaut 5)
2ime (i2) 25 x * x x
3ime (i3) 125 *x
525 x3 * x soit x4
4ime (i4)
i vaut n donc arrt de la boucle
aprs 525 le rsultat voulu

5. Trouver le minimum dune suite de nombres

Nous voulons trouver le plus petit parmi une liste de 100 nombres saisis par lutilisateur.
Comment faire ?

12

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

Il est irraliste de dclarer 100 variables et de les comparer toutes une une.
La saisie des nombres de la liste va se faire lintrieur dune boucle laide dune seule
variable.
Pour obtenir le minimum, nous allons utiliser une itration.
A chaque tour de boucle, un nombre supplmentaire est saisi. Si on connat le minimum
parmi tous les prcdents nombre saisis, il suffit de comparer le nouveau nombre ce
minimum pour avoir le nouveau minimum (parmi tous les nombres, y compris le dernier). Si
le nouveau nombre saisi est plus petit que le plus petit des nombres prcdents, alors le
nouveau nombre est le nouveau minimum parmi tous les nombres saisis. Sinon, le minimum
reste le mme.
Avant la premire saisie, il ny a pas de minimum. En fait, lorsquun seul nombre est saisi,
cest forcment lui le minimum. Donc on commence faire la boucle partir du deuxime
lment saisi.

Programme minimum Var


nb : rel //pour la saisie des nombres min
: rel //minimum

Dbut
Aff Entrez un nombre
Saisir nb min nb //le premier nombre saisi est le minimum des nombres dj saisi
(il est le seul !!)
Pour i de 2 jusqu 100 Faire //pour tous les autres lments du 2 au dernier
Aff entrez un autre nombre
Saisir nb //on le met en mmoire
Si nb < min Alors // si il est plus petit que le minimum trouv au tour prcdent
min nb // cest lui le nouveau minimum parmi les nombre dj saisis
Finsi
Finpour // la sortie de la boucle, min vaut le minimum des 100 nombres saisis
Aff Le minimum des nombres saisis est , min
Fin

13

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

6. La dmarche itrative : cas gnral

Une itration consiste un cheminement d'un tat initial un tat final, celui qui est
recherch. Un tat est reprsent par les valeurs des variables un moment donn. La
progression (le cheminement) vers l'tat recherch se fait en passant par des tats
intermdiaires.
Une boucle permet de progresser d'un tat un autre tat, en se rapprochant de l'tat final.
Lorsque l'tat final est atteint, la boucle doit d'arrter.

tat
initial

tat tat final


tat intermdiaire n1
intermdiaire n2

1er tour 2 tour 3 tour

Pour "dcouvrir" une itration, il n'y a pas de recette miracle. Il faut utiliser son imagination
et son intelligence.
Nanmoins, la dmarche suivante peut aider trouver une itration pour rsoudre un
problme.

1) Chercher un tat intermdiaire entre l'tat initial et l'tat final (par exemple, pour
le minimum tudi au paragraphe prcdent, l'tat intermdiaire est qu'on a trouv
le minimum des i nombres dj taps). On ne se proccupe pas de la manire dont on
est parvenu cet tat, on suppose que cet tat est atteint

2) Voir quelles instructions permettent de progresser l'tat intermdiaire


suivant (par exemple, pour le minimum, comment trouver le nouveau minimum
lorsqu'un nouveau nombre est tap). Bien faire attention l'ordre des instructions.

3) Se demander quelle(s) condition(s) l'tat auquel on est parvenu est final


(dans le cas du minimum, c'est lorsque tous les nombres ont t saisis, c'est--dire
quand le compteur vaut plus de 100)

4) Enfin, trouver comment commencer. Il faut trouver un tat initial o toutes les
valeurs sont connues et qui permet de passer un tat intermdiaire. Certaines
variables doivent tre initialises.(dans le cas du minimum, le minimum est connu
quand un seul nombre a t saisi)

14

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

CHAPITRE 2 LES STRUCTURES DE CONTROLE


Enonce des Exercices
Exercice 2.1

Ecrire un algorithme qui demande un nombre lutilisateur, et linforme ensuite si ce nombre est positif ou
ngatif (on laisse de ct le cas o le nombre vaut zro).

Exercice 2.2

Ecrire un algorithme qui demande deux nombres lutilisateur et linforme ensuite si leur produit est ngatif ou
positif (on laisse de ct le cas o le produit est nul). Attention toutefois : on ne doit pas calculer le produit des
deux nombres.

Exercice 2.3

Ecrire un algorithme qui demande trois noms lutilisateur et linforme ensuite sils sont rangs ou non dans
lordre alphabtique.

Exercice 2.4

Ecrire un algorithme qui demande un nombre lutilisateur, et linforme ensuite si ce nombre est positif ou
ngatif (on inclut cette fois le traitement du cas o le nombre vaut zro).

Exercice 2.5

Ecrire un algorithme qui demande deux nombres lutilisateur et linforme ensuite si le produit est ngatif ou
positif (on inclut cette fois le traitement du cas o le produit peut tre nul). Attention toutefois, on ne doit pas
calculer le produit !

Exercice 2.6

Ecrire un algorithme qui demande lge dun enfant lutilisateur. Ensuite, il linforme de sa catgorie :

"Poussin" de 6 7 ans
"Pupille" de 8 9 ans
"Minime" de 10 11 ans
"Cadet" aprs 12 ans Peut-on concevoir plusieurs algorithmes quivalents menant ce rsultat ?

15

L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Les structures de contrle Centre Universitaire Professionnalis

16

L3-M1-M2-INFORMATIQUE-TELECOMS

Vous aimerez peut-être aussi