Vous êtes sur la page 1sur 12

CH 4: Les structures de contrle itratives

Professeur : Mohamed TRABELSI

Chapitre n4 :

Les structures de contrle itratives


Dure : 12H
Objectifs du cours :

Boucle Pour,

Rpter

Tant que.

Leon 1

La structure de contrle itrative complte

Introduction
Exemple : Afficher sur cran les nombres de la base dcimale.
Ecrire ("0")

Pour compteur = 0 9 faire


Ecrire (compteur)

.
Ecrire ("9")
Activit 1 :

Fin Pour

Saisie dun tableau

Ecrire un programme qui saisit un tableau T de n rel. Saisir l'entier n, on suppose que (n
100). Indiquer le rang i lors de la ime saisie au niveau de l'affichage.
Pr analyse
1re solution
Tr [1] = donne
Tr [2] = donne
..
Tr [n] = donne

2me solution
Penser utiliser une boucle
qui rpte automatiquement
l'instruction de saisie n fois.

I Rappel et dfinition :
1. Dfinition : (voir livre page 106)
2. Vocabulaire et syntaxe (voir livre page 106, 107)
3. Parcours dcroissant (voir livre page 109)

http://web-tic.net

1 / 12

CH 4: Les structures de contrle itratives

Professeur : Mohamed TRABELSI

Activit 2 :
Faire l'analyse d'un programme qui permet de calculer la paye hebdomadaire d'un ouvrier.
La solution doit nous permettre de :

o Saisir le nombre d'heures travailles par jour. (Jours ouvrables : Du lundi au


Vendredi)
o Saisir la valeur du taux horaire de payement
Puis de calculer le nombre total d'heures travailles de la semaine et d'afficher le
montant de la paye.

a. Analyse
Nom : paye_semaine
S

L. D. E

O.U

Rsultat = crire (PS)

PS

PS total * THP

total, THP

total = [total 0]
Pour j de lundi vendredi faire

H[j] = donne ("Entrez le nombre d'heure du jour ", ord (j) +1, " : ") H
total total + H [j]
Fin pour
1

THP = donne ("Prcisez la valeur du taux horaire : ")

j = compteur
Fin paye_semaine
T.D.N.T

Type
jours = (dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi)
jours_de_travail = lundi .. vendredi
Paye = tableau de 5 entier
T.D.O

Objet

Type

Rle

j
total
THP
PS
H

jour_de_travail
octet
Rel
Rel
paye

Compteur reprsentant le jour en cours


Total heures de la semaine
Taux horaire de payement
Paye de la semaine
Tableau des heures travailles par jour

http://web-tic.net

2 / 12

CH 4: Les structures de contrle itratives

Professeur : Mohamed TRABELSI

b. Algorithme
0) Dbut paye_semaine
1) Ecrire ("Prcisez la valeur du taux horaire : "), lire (THP)
2) total 0
Pour j de lundi vendredi faire
crire ("Entrez le nombre d'heure du jour ", ord(j) +1, " : "), lire (H[j])
total total + H[j]
Fin pour
3) MP total * THP
4) crire ("La paye de la semaine est : ", PS, " DT")
5) Fin paye_semaine

c. Pascal (voir fichier : paye_sm.pas)

http://web-tic.net

3 / 12

CH 4: Les structures de contrle itratives

Leon 2

Professeur : Mohamed TRABELSI

Les structures de contrle itratives condition d'arrt

I - La structure Rpter Jusqu :


1. Dfinition
L'arrt de la rptition de la boucle rpter se fait lorsque la condition d'arrt est vraie.
Cette condition est situe la fin de la structure. Par consquent, le traitement sera
excut au moins une fois quelque soit le rsultat de la condition darrt.
2. Vocabulaire et syntaxe :
En algorithmique

En Pascal

= [Initialisation] Rpter

suite dinstructions

Jusqu (condition darrt)

{Initialisation};
Repeat

suite dinstructions;

Until (condition darrt) ;

Activit 1 :
Ecrire un programme qui saisit un tableau C de n caractres et qui affiche un message
indiquant si un caractre v existe ou non dans C.

a. Analyse :
Nom : recherche
S

L.D.E

O.U

Rsultat = Affichage
3
2

Affichage = [ ] Si existe_v alors crire (v, " Existe dans C")


Sinon crire (v, " n'existe pas dans C")
Fin si
existe_v = [v = donne, i 1, existe_v faux]
Rpter
Si C [i] = v alors existe_v vrai
Fin si
Jusqu' (existe_v) ou (i = n)

C = [ n = donne ] Pour i de 1 n faire


C [i] = Donne (" Donner la case ", i," : ")
Fin pour
i = compteur

Fin recherche

http://web-tic.net

existe_v
v
i
C
n

4 / 12

CH 4: Les structures de contrle itratives

Professeur : Mohamed TRABELSI

T.D.N.T

Type
TC = tableau de 50 caractres
T.D.O

Objet

Type

Rle

C
i
existe_v
v
n

TC
Entier
Boolen
caractre
Entier

Tableau de caractres
Compteur
L'lment recherch
Nombre de case utilises

b. Algorithme :
0) Dbut recherche
1) Ecrire ("Donner n : "), lire (n)
Pour i de 1 n faire
C [i] = Donne (" Donner la case ", i," : ")
Fin pour
2) Ecrire ("Donner v : "), lire (v)
i1
existe_v faux
Rpter
Si C [i] = v alors existe_v vrai
Fin si
Jusqu' (existe_v) ou (i = n)
3) Si existe_v alors crire (v, " Existe dans C")
Sinon crire (v, " n'existe pas dans C")
Fin si
4) Fin recherche

c. Pascal (voir fichier : rech_c.pas)

http://web-tic.net

5 / 12

CH 4: Les structures de contrle itratives

Professeur : Mohamed TRABELSI

II - La structure Tant que Faire :


Activit 2 :
Faire une analyse qui permet de dterminer le PGCD de 2 entiers a et b saisis par
l'utilisateur.

a. Analyse :
Nom : pgcd_diffrence
S

L.D.E

Rsultat = crire (" Le plus grand diviseur commun est: ", a)

a = [ ] Tant que a b faire


Si a < b alors a a b
Sinon b b a
Fin Si
Fin Tant que

a = donne ("Donner a : ")

b = donne ("Donner b : ")

Fin pgcd_diffrence

O.U
a

v
i
C
n

T.D.O

Objet

Type

a
b

Entier
Entier

Rle

b. Algorithme :
0) Dbut pgcd_diffrence
1) Ecrire ("Donner a : "), lire (a)
2) Ecrire ("Donner b : "), lire (b)
3) Tant que a b faire
Si a < b alors a a b
Sinon b b a
Fin Si
4) crire (" Le plus grand diviseur commun est: ", a)
5) Fin pgcd_diffrence

c. Pascal (voir fichier : pgcd_dif.pas)

http://web-tic.net

6 / 12

CH 4: Les structures de contrle itratives

Professeur : Mohamed TRABELSI

Mthode d'Euclide

Algorithme
0) Fonction pgcd_euclide (a, b : entier) : entier
1) Tant que b 0 faire
r a mod b
ab
br
Fin tant que
2) pgcd_euclide a
3) Fin pgcd_euclide
T.D.O Locaux
Objet
r

Type
Entier

Rle
Reste de la division Euclidienne

1. Dfinition
Le traitement n'est excut que lorsque la condition est vrifie. La condition peut ne
pas tre vrifie ds la premire excution de la boucle tant que, dans ce cas le
traitement ne sera jamais excut.
2. Vocabulaire et syntaxe
En algorithmique
= [Initialisations]
Tant que (Condition darrt) faire

suite dinstructions rpter

Fin Tant que

En Pascal
Initialisations ;
while ( condition darrt) do
Begin
. ;
suite dinstructions;
. ;
End;

Activit 3 :
Faire l'analyse d'un programme qui affiche la division entire de 2 entiers sans utiliser la
fonction prdfinie DIV.

http://web-tic.net

7 / 12

CH 4: Les structures de contrle itratives

Professeur : Mohamed TRABELSI

a. Analyse :
Nom : division2
S
L.D.E
4 Rsultat = crire ("La division est : ", i)

O.U
i

i = [i 0] Tant que (r1 r2) Faire

r1
r2

r1 r1 r2
ii+1
Fin Tant que
1

r1 = Donne ("Donner le premier rel")

r2 = Donne ("Donner le deuxime rel")

Fin division2

T.D.O :
Objet
r1, r2
i

Type

Rle

Entiers
Entier

b. Algorithme :
0) Dbut division2
1) Ecrire ("Donner le premier rel"), lire (r1)
2) Ecrire ("Donner le deuxime rel"), lire (r2)
3) i 0
Tant que (r1 r2) Faire
r1 r1 r2
ii+1
Fin Tant que
4) crire ("La division est : ", i)
5) Fin division2

c. Pascal (voir fichier : div_ent.pas)

Version 2
Faire l'analyse d'un programme qui affiche la division relle de 2 entiers sans utiliser
l'oprateur /.

Pascal (voir fichier : div_reel.pas)

http://web-tic.net

8 / 12

CH 4: Les structures de contrle itratives

Professeur : Mohamed TRABELSI

Structure itrative complte avec pas diffrent de 1 :


Activit 4
En utilisant une boucle pour afficher sur cran les nombres impairs compris entre 1 et 9.
Pascal

Analyse
[c 1]
Tant que c < =9 faire
Ecrire (c)
cc+2
Fin Tant que

Pas = 2
Nombre d'itration = 5

c := 1;
while c <= 9 do
begin
write (c : 5);
c:= c + 2;
end;

Analyse

Pas = 2

[ ] Pour c de 1 9 (pas = 2) faire

Nombre d'itration = 1 + E (9 1) / 2

Ecrire (c)

=5

Fin pour

Pascal
n := 1 + Round ((9 1) / 2);
for i := 1 to n do
begin
c := i * 2;
write (c 1 : 5);
end;

Pascal (voir fichier : pas_pour.pas)


Cas gnral : voir livre (page 111)

Les itrations compltes rcurrentes :


Une rcurrence est une relation entre plusieurs termes successifs d'une suite, qui permet
de calculer le terme d'indice le plus lev en fonction des autres. Se fonctionnement
ncessite l'initialisation des premiers termes de la suite.

Exemples :
Calcul rcurent d'ordre 1
1. Somme des n premiers nombre entiers :
U0 = 0
Un = Un-1 + n

http://web-tic.net

9 / 12

CH 4: Les structures de contrle itratives

Professeur : Mohamed TRABELSI

Fonctionnement :
Pour n = 5,
U5 = U4 + 5
U4 = U3 + 4
U3 = U2 + 3
U2 = U1 + 2
U1 = U0 + 1
U0 = 0

U5 = 10 + 5 =15
U4 = 6 + 4 = 10
U3 = 3 + 3 = 6
U2 = 1 + 2 = 3
U1 = 0 + 1 = 1

Algorithme
0)
1)
2)
3)

Dbut somme_n
Lire (n)
cumul 0
Pour i de 1 n faire
cumul Cumul +
i
Fin pour
4) Ecrire (cumul)
5) Fin somme_n

T.D.O
Objet
i
Cumul

Type
Entier
Entier

Rle
Compteur
Somme des n premier entiers

2. Factorielle n :
U0 = 1
Un = Un-1 n
3. Calcul de la puissance :
n0 = 1
np = np-1 n

Calcul rcurent d'ordre 2


1. Suite de Fibonacci :
U1 = 1
U2 = 2
Un = Un-1 + Un-2 (n 3)

Vn = Un / Un-1 (n 2)
La suite (Vn) tend vers une limite appele nombre dor.

http://web-tic.net

10 / 12

CH 4: Les structures de contrle itratives

Professeur : Mohamed TRABELSI

Correction exercice 12 - page 142.

a. Analyse :
Nom : recherche_x0
S
L.D.E
3 Rsultat = crire ("F admet un minimum entre ", x0, " et ", x)
x0, x = [x pas,
x0 x,
fx0 x0 +1 + (1/x0)]

O.U
x0, x
pas
fx0

Rpter
x x + pas
fx x + 1 + (1 / x)

fx

Si fx0 > fx alors x0 x


fx0 fx
Fin Si
Jusqu' (x > 4) ou (fx0 < fx)
1

pas = Donne ("Donner le pas : ")

Fin recherche_x0

T.D.O :
Objet

Type

rel

x0

Rel

fx

rel

fx0

rel

Pas

rel

http://web-tic.net

Rle

11 / 12

CH 4: Les structures de contrle itratives

Professeur : Mohamed TRABELSI

b. Algorithme :
0) Dbut recherche_x0
1) Ecrire ("Donner le pas : "), lire (pas)
2) x pas
x0 x
fx0 x0 +1 + (1/x0)
Rpter
x x + pas
fx x + 1 + (1 / x)
Si fx0 > fx alors x0 x
fx0 fx
Fin Si
Jusqu' (x > 4) ou (fx0 < fx)
3) Ecrire ("F admet un minimum entre ", x0, " et ", x)
4) Fin recherche_x0

Pascal (voir fichier : min_f3.pas)

http://web-tic.net

12 / 12