Chapitre 3 Structures de contrôle itératives

Download Report

Transcript Chapitre 3 Structures de contrôle itératives

Correction du reste des
exercices
1
Chapitre 3 Structures de
contrôle itératives
Séance 4
Si vous ne dites rien, on ne vous
demandera pas de le répéter.
[Calvin Coolidge]
2
Plan
I.
II.
III.
Structure de contrôle itérative
complète
Structures de contrôle itératives à
condition d’arrêt
Applications
3
III. Applications
1.
2.
3.
Application 1
Application 2
Application 3
4
1. Application 1 (Exercice 8 de
la série 1)


Écrire l’analyse, l’algorithme et le programme qui
permet de calculer le plus grand commun diviseur
PGCD de deux entiers
La liste des diviseurs de





24 est : 1; 2; 3; 4; 6; 8; 12; 24
36 est: 1; 2; 3; 4; 6; 12; 18; 36
36 et 24 ont pour diviseurs communs: 1; 2; 3; 4; 6 et 12
Le plus grand diviseur commun de 36 et 24 est 12.
On le désigne

PGCD (36;24) = PGCD (24;36) = 12
5
Analyse

Méthode de la division, dite de
l'algorithme d'Euclide
58 >29

203 >58

261 >203


Diviser le plus grand entier sur le 2ième
Compare le reste et le diviseur
Diviser le plus grand sur le plus petit
Exemple : PGCD(261;203)
PGCD
261 203
203 58
58
29
29
58
29
0
2
1

3
On s'arrête quand le reste est nul; le PGCD est
le dernier reste non nul.

PGCD(261;203) = 29
6
L’analyse
3 Résultat =Ecrire(‘‘PGCD(’’,m,‘‘ , ’’, n, ‘‘)’’ =pgcd)
2 pgcd[pgcdm]=
Si (m=0) alors
pgcdn
FIN Si
m,n = [ m=Donnée (‘‘m=’’) , n=Donnée (‘‘n=’’) ]
1 Tant que (m*n <> 0) faire
Si (m>n) alors
mm MOD n
sinon
nn MOD m
FIN Si
Fin Tant que
4 Fin CalculPGCD
7
L’algorithme
0) Début CalculPGCD
1)
Ecrire (‘‘m=’’)
2)
Lire (m)
3)
Ecrire (‘‘n=’’)
4)
Lire (n)
5)
Tant que (m*n <> 0) faire
Si (m>n) alors
TDO
mm MOD n
sinon
NOM
TYPE
nn MOD m
n
Entier
FIN Si
m
Entier
Fin Tant que
6)
pgcdm]=
pgcd
Entier
7)
Si (m=0) alors
pgcdn
FIN Si
8)
Ecrire(‘‘PGCD(’’,m,‘‘ , ’’, n, ‘‘)’’ =pgcd)
9) Fin CalculPGCD
8
2. Application 2 (Exercice 2 de
la série de révision)

Soit le jeu suivant :




Trouver un nombre caché entre 0 et 100
On cherche à découvrir un nombre caché, à
chaque proposition on indique si le nombre
recherché est plus grand ou plus petit que celui
que l’on vient de proposer
On veut savoir en combien de coup le joueur a
trouvé le nombre
Le joueur perd s’il n’a pas trouvé en au maximum
7 propositions
9
L’analyse
3
2
1
4
Résultat = decision
Decision[]=Si (x=n) alors
Ecrire(‘‘Vous avez GAGNE en ’’,coup, ‘‘essai(s)’’)
Sinon
Ecrire(‘‘Vous avez PERDU’. L’entier à trouver est = ’, n)
FIN Si
coup,x=[coup0]
Répéter
Si coup=6 alors
Ecrire(‘‘Attention! Il ne vous reste plus qu un essai’’)
FinSi
Ecrire (‘‘Donner l’entier à trouver’’)
Lire (x)
Si x>n alors
Ecrire(‘‘L’entier saisi est > à l’entier qu’on veut trouver’’)
Sinon
Si x<n alors
Ecrire(‘‘L’entier saisi est < à l’entier qu’on veut trouver’’)
FinSi
FinSi
coupcoup+1
Jusqu’à (x=n) OU (coup>=7)
nalea (101)
Fin jeu
10
10
L’algorithme
0) Début jeu
1)
nalea(101)
TDO
2)
coup0
Nom
Type
3)
Répéter
n
Entier
Si coup=6 alors
Entier
Ecrire(‘‘Attention! Il ne vous reste plus qu un essai’’) x
FinSi
coup
Entier
Ecrire (‘‘Donner l’entier à trouver’’)
Lire (x)
Si x>n alors
Ecrire(‘‘L’entier saisi est > à l’entier qu’on veut trouver’’)
Sinon
Si x<n alors
Ecrire(‘‘L’entier saisi est < à l’entier qu’on veut trouver’’)
FinSi
FinSi
coupcoup+1
Jusqu’à (x=n) OU (coup=7)
4)
Si (x=n) alors
Ecrire(‘‘Vous avez GAGNE en ’’,coup, ‘‘essai(s)’’)
Sinon
Ecrire(‘‘Vous avez PERDU’. L’entier à trouver est = ’, n)
FIN Si
11
11
5)Fin jeu
3. Application 3 (Exercice 3 de
la série de révision)

Soit 20 nombres entiers entre 100 et
200 créés au hasard par l’ordinateur. On
vous demande d’écrire l’analyse,
l’algorithme et le programme
permettant de :


Afficher ces nombres à l’écran
Calculer et afficher la somme et la
moyenne arithmétique des nombres pairs.
12
L’analyse
4
5
3
2
Résultat = Ecrire (‘‘La somme= ’’,somme)
Ecrire (‘‘La moyenne arithmétique= ’’,moyenne)
moyenne= [] moyennesomme/20
somme=[somme0,k0]
Pour i de 1 à 20 faire
Ecrire(‘‘T[’’,i,‘‘]= ’’,T[i])
Si T[i] MOD 2 =0 alors
sommesomme+T[i]
kk+1
Fin Si
1 Fin Pour
T=[]
Pour i de 1 à 20 faire
Répéter
T[i]Alea(201)
jusqu’à T[i] dans [100,200]
5 Fin Pour
Fin Exercice 2
13
13
TDNT
L’algorithme
TYPE
Tableau=Tableau de 20 entier
0) Début exercice3
TDO
1)
Pour i de 1 à 20 faire
Répéter
Nom
Type
T[i]Alea(201)
Entier
jusqu’à T[i] dans [100,200] i
Fin Pour
Somme
Entier
2)
somme0
moyenne
Réel
3)
k0
T
Tableau
4)
Pour i de 1 à 20 faire
Ecrire(‘‘T[’’,i,‘‘]= ’’,T[i])
k
Entier
Si T[i] MOD 2 =0 alors
sommesomme+T[i]
kk+1
Fin Si
Fin Pour
5)
moyennesomme/k
6)
Ecrire (‘‘La somme= ’’,somme)
7)
Ecrire (‘‘La moyenne arithmétique= ’’,moyenne)
8)Fin exercice3
14