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)

Présentations similaires


Présentation au sujet: "Section VI Structures répétitives (suite)"— Transcription de la présentation:

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

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

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

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

5 Structure POUR Structure répétitive employant une variable compteur pour identifier le nombre d’ité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 d’ité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" FINTANTQUE ÉCRIRE "Log(", Nombre, ")=", Log(Nombre) Exemple d’exécution Nombre positif? 100 Log(100) = 2

8 Structure RÉPÉTER-JUSQU’À (suite)
Dans certaines solutions, il est parfois requis qu’une structure répétitive effectue au moins une itération Dans cet exemple, l’initialisation de la variable Nombre est essentielle afin qu’un 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 d’itération à la fin de la boucle Au moins une itération est garantie afin que le flux d’exécution se rendre à la condition d’ité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 n’est pas satisfaite Non Condition? Séquence d’opérations Oui RÉPÉTER Séquence d’opérations JUSQU’À Condition

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 n’y a pas de structure RÉPÉTER-TANTQUE C’est-à-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 JUSQU’À Nombre > 0 RÉPÉTER ÉCRIRE "Nombre positif?" LIRE Nombre TANTQUE 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 l’utilisateur 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
Fin Écrire "Nombre maximum=", Maximum Non Nombre < 0? Oui A Nombre > Maximum? Écrire "Erreur: nombre invalide" Maximum = Nombre Lire Continue Écrire "Traiter un autre nombre (oui/non)?" B Continue = "non"? Solution : organigramme On exploite le symbole connecteur ( ) X Début Lire Nombre Écrire "Nombre non-négatif?" Maximum = 0 A B

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 d’ité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)"

Présentations similaires


Annonces Google