La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE.

Présentations similaires


Présentation au sujet: "Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE."— Transcription de la présentation:

1 Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes FGE

2 Contenu Récapitulation –Structure TANTQUE –Structure POUR Structure RÉPÉTER-JUSQUÀ –Pseudo-code et organigramme Exercice Devoir #5

3 Structure TANTQUE Permet de répéter une séquence dopérations tant quune condition est satisfaite (i.e. vraie) TANTQUE Condition FAIRE Séquence d'opérations FINTANTQUE Non Condition? Séquence dopérations Oui

4 Structure TANTQUE (suite) Exemple : algorithme calculant la moyenne de 100 valeurs Accum = 0 Compte = 1 TANTQUE Compte < 101 FAIRE LIRE Valeur Accum = Accum + Valeur Compte = Compte + 1 FINTANTQUE Moyenne = Accum / 100 ÉCRIRE Moyenne Lire Valeur Fin Moyenne = Accum / 100 Non Oui Accum = Accum + Valeur Accum = 0 Compte = 1 Début Compte < 101? Compte = Compte + 1 Écrire Moyenne

5 Structure POUR Structure répétitive employant une variable compteur pour identifier le nombre ditérations à effectuer Pseudo-code POUR Variable = Début JUSQUÀ Fin FAIRE Séquence d'opérations FINPOUR

6 Structure POUR (suite) Exemple : algorithme calculant la moyenne de 100 valeurs La variable Compte est automatiquement incrémentée (i.e. augmentée de 1) à chaque itération Accum = 0 POUR Compte = 1 JUSQUÀ 100 FAIRE LIRE Valeur Accum = Accum + Valeur FINPOUR Moyenne = Accum / 100 ÉCRIRE Moyenne

7 Structure RÉPÉTER-JUSQUÀ La structure répétitive TANTQUE ne peut faire ditération si la condition est fausse avant la première itération ÉCRIRE "Nombre positif?" LIRE Nombre TANTQUE Nombre 0 FAIRE ÉCRIRE "Le nombre doit être positif" LIRE Nombre FINTANTQUE ÉCRIRE "Log(", Nombre, ")=", Log(Nombre) Exemple dexécution Nombre positif? 100 Log(100) = 2

8 Structure RÉPÉTER-JUSQUÀ (suite) Dans certaines solutions, il est parfois requis quune structure répétitive effectue au moins une itération Dans cet exemple, linitialisation de la variable Nombre est essentielle afin quun itération soit effectuée par la boucle Nombre = 0 TANTQUE Nombre 0 FAIRE ÉCRIRE "Nombre positif?" LIRE Nombre FINTANTQUE

9 Structure RÉPÉTER-JUSQUÀ (suite) La structure répétitive RÉPÉTER-JUSQU'À répond à ce besoin en plaçant la condition ditération à la fin de la boucle Au moins une itération est garantie afin que le flux dexécution se rendre à la condition ditération RÉPÉTER ÉCRIRE "Nombre positif?" LIRE Nombre JUSQUÀ Nombre > 0

10 Structure RÉPÉTER-JUSQUÀ (suite) Formulation Notez que les itérations se poursuivent tant que la condition nest pas satisfaite RÉPÉTER Séquence dopérations JUSQUÀ Condition Non Condition? Séquence dopérations Oui

11 Structure RÉPÉTER-JUSQUÀ (suite) La condition de la structure RÉPÉTER- JUSQUÀ est inversée par rapport à la structure TANTQUE équivalente Nombre = 0 TANTQUE Nombre 0 FAIRE ÉCRIRE "Nombre positif?" LIRE Nombre FINTANTQUE RÉPÉTER ÉCRIRE "Nombre positif?" LIRE Nombre JUSQUÀ Nombre > 0

12 Structure RÉPÉTER-JUSQUÀ (suite) En algorithmie, il ny a pas de structure RÉPÉTER-TANTQUE –Cest-à-dire répéter tant que la condition est vraie –On utilise plutôt une structure RÉPÉTER- JUSQUÀ avec une condition négative RÉPÉTER ÉCRIRE "Nombre positif?" LIRE Nombre TANTQUE Nombre 0 RÉPÉTER ÉCRIRE "Nombre positif?" LIRE Nombre JUSQUÀ Nombre > 0

13 Exercice #1 Exercice : Écrivez un algorithme (pseudo- code et organigramme) qui identifie la valeur maximum parmi des valeurs non-négatives fournies par lutilisateur –Si l'utilisateur entre un nombre négatif, affichez une message d'erreur et ignorez celle-ci –Après chaque traitement d'une valeur, demander à l'utilisateur s'il a terminé –Exploitez une structure RÉPÉTER-JUSQU'À

14 Exercice #1 Solution : pseudo-code Maximum = 0 \\ initialisation RÉPÉTER ÉCRIRE "Nombre non-négatif?" LIRE Nombre \\ Traiter le nombre lu SI Nombre < 0 ALORS ÉCRIRE "Erreur: nombre invalide" SINON SI Nombre > Maximum ALORS Maximum = Nombre FINSI \\ Doit-on traiter un autre nombre? ÉCRIRE Traiter un autre nombre (oui/non)?" LIRE Continue JUSQUÀ Continue = "non" \\ Afficher le maximum trouvé ÉCRIRE "Nombre maximum =", Maximum

15 Exercice #1 Solution : organigramme –On exploite le symbole connecteur ( ) Début Lire Nombre Écrire "Nombre non-négatif?" Maximum = 0 A B Fin Écrire "Nombre maximum=", Maximum Non Nombre < 0? Oui A Non Nombre > Maximum? Oui Écrire "Erreur: nombre invalide" Maximum = Nombre Lire Continue Écrire "Traiter un autre nombre (oui/non)?" Oui B Continue = "non"? Non X

16 Quelle structure utiliser? Trois structures répétitives sont disponibles –Laquelle utiliser dans un algorithme? Voici quelques règles à considérer –Si le nombre ditérations est déterminé par une variable compteur incrémentée Utiliser la structure POUR –Si au moins une itération est requise Utiliser la structure RÉPÉTER-JUSQUÀ –Dans les autres circonstances Utiliser la structure TANTQUE

17 Questions quiz Qu'est ce qu'une itération? - Une exécution de la séquence d'opérations dans une structure itérative Qu'est-ce qu'une variable d'accumulation? - Une variable servant à accumuler des valeurs numériques Quel est le rôle du symbole d'initialisation? - Représente des opérations d'initialisation de variables

18 Questions quiz (suite) Quelles sont les principales distinctions entre la structure TANTQUE et la structure RÉPÉTER-JUSQU'À? - La position de la condition d'itération - Inversion de la condition d'itération Une boucle peut-elle disposer de plus d'un point de sortie? - Non, la seule sortie possible est via la condition d'itération

19 Questions quiz (suite) Quel est un risque potentiel d'erreur lorsqu'on exploite des boucles imbriquées avec compteurs? - Éviter que les deux boucles exploite la même variable compteur Quelle structure répétitive n'a pas de représentation dans l'organigramme? - POUR

20 Questions quiz (suite) Lequel des algorithmes suivants ne fonctionne pas, et pourquoi? –Afficher la somme des valeurs autres que 0 lues Accum = 0 TANTQUE Valeur 0 FAIRE Accum = Accum + Valeur LIRE Valeur FINTANTQUE ÉCRIRE Accum Accum = 0 RÉPÉTER LIRE Valeur Accum = Accum + Valeur JUSQU'À Valeur 0 ÉCRIRE Accum Aucune lecture de Valeur n'est effectuée avant de vérifier la condition d'itération La condition d'itération doit être inversée, sinon la boucle cesse à la lecture d'une valeur autre que 0

21 Devoir #5 Énoncé du devoir disponible sur ~jlemoe Concevoir un algorithme calculant votre moyenne pondérée cumulative Vous devez soumettre (Devoir6.ZIP) –Un fichier LARP –Un fichier Word –À remettre avant le prochain cours


Télécharger ppt "Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE."

Présentations similaires


Annonces Google