Correction du reste des exercices
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]
Plan Structure de contrôle itérative complète Structures de contrôle itératives à condition d’arrêt Applications
III. Applications Application 1 Application 2 Application 3
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
Analyse Méthode de la division, dite de l'algorithme d'Euclide 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) On s'arrête quand le reste est nul; le PGCD est le dernier reste non nul. PGCD(261;203) = 29 58 >29 PGCD 203 >58 261 >203 58 29 29 261 203 203 58 2 58 1 29 3
L’analyse 3 2 1 4 Résultat =Ecrire(‘‘PGCD(’’,m,‘‘ , ’’, n, ‘‘)’’ =pgcd) pgcd[pgcdm]= Si (m=0) alors pgcdn FIN Si m,n = [ m=Donnée (‘‘m=’’) , n=Donnée (‘‘n=’’) ] Tant que (m*n <> 0) faire Si (m>n) alors mm MOD n sinon nn MOD m Fin Tant que Fin CalculPGCD
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 mm MOD n sinon nn MOD m FIN Si Fin Tant que 6) pgcdm]= 7) Si (m=0) alors pgcdn 8) Ecrire(‘‘PGCD(’’,m,‘‘ , ’’, n, ‘‘)’’ =pgcd) 9) Fin CalculPGCD TDO NOM TYPE n Entier m pgcd
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
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=[coup0] 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’’) Si x<n alors Ecrire(‘‘L’entier saisi est < à l’entier qu’on veut trouver’’) coupcoup+1 Jusqu’à (x=n) OU (coup>=7) nalea (101) Fin jeu 10
L’algorithme 0) Début jeu 1) nalea(101) 2) coup0 3) 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’’) coupcoup+1 Jusqu’à (x=n) OU (coup=7) 4) Si (x=n) alors Ecrire(‘‘Vous avez GAGNE en ’’,coup, ‘‘essai(s)’’) Ecrire(‘‘Vous avez PERDU’. L’entier à trouver est = ’, n) FIN Si 5)Fin jeu TDO Nom Type n Entier x coup 11
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.
L’analyse 4 5 3 2 1 Résultat = Ecrire (‘‘La somme= ’’,somme) Ecrire (‘‘La moyenne arithmétique= ’’,moyenne) moyenne= [] moyennesomme/20 somme=[somme0,k0] Pour i de 1 à 20 faire Ecrire(‘‘T[’’,i,‘‘]= ’’,T[i]) Si T[i] MOD 2 =0 alors sommesomme+T[i] kk+1 Fin Si Fin Pour T=[] Répéter T[i]Alea(201) jusqu’à T[i] dans [100,200] Fin Exercice 2 13
L’algorithme TDNT TDO TYPE Tableau=Tableau de 20 entier 0) Début exercice3 1) Pour i de 1 à 20 faire Répéter T[i]Alea(201) jusqu’à T[i] dans [100,200] Fin Pour 2) somme0 3) k0 4) Pour i de 1 à 20 faire Ecrire(‘‘T[’’,i,‘‘]= ’’,T[i]) Si T[i] MOD 2 =0 alors sommesomme+T[i] kk+1 Fin Si 5) moyennesomme/k 6) Ecrire (‘‘La somme= ’’,somme) 7) Ecrire (‘‘La moyenne arithmétique= ’’,moyenne) 8)Fin exercice3 TDO Nom Type i Entier Somme moyenne Réel T Tableau k