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

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

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

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

Section VI

Structures répétitives (suite)

Algorithmes et résolution de problèmes18279 FGE

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

Contenu

• Récapitulation– Structure TANTQUE– Structure POUR

• Structure RÉPÉTER-JUSQU’À– Pseudo-code et organigramme

• Exercice

• Devoir #5

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

Structure TANTQUE

• Permet de répéter une séquence d’opérations tant qu’une condition est satisfaite (i.e. vraie)

TANTQUE Condition FAIRE Séquence d'opérationsFINTANTQUE

NonCondition?

Séquenced’opérations

Oui

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

Structure TANTQUE (suite)

• Exemple : algorithme calculant la moyenne de 100 valeurs

Accum = 0Compte = 1TANTQUE Compte < 101 FAIRE LIRE Valeur Accum = Accum + Valeur Compte = Compte + 1FINTANTQUEMoyenne = Accum / 100ÉCRIRE Moyenne

Lire Valeur

Fin

Moyenne = Accum / 100

Non

Oui

Accum = Accum + Valeur

Accum = 0Compte = 1

Début

Compte < 101?

Compte = Compte + 1

Écrire Moyenne

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

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érationsFINPOUR

Processus

Compteur = 1

Compteur > 10

Compteur +1

Non

Oui

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

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 = 0POUR Compte = 1 JUSQU’À 100 FAIRE LIRE Valeur Accum = Accum + ValeurFINPOURMoyenne = Accum / 100ÉCRIRE Moyenne

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

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 NombreTANTQUE Nombre 0 FAIRE ÉCRIRE "Le nombre doit être positif" LIRE NombreFINTANTQUEÉCRIRE "Log(", Nombre, ")=", Log(Nombre)

Exemple d’exécution

Nombre positif? 100Log(100) = 2

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

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 = 0TANTQUE Nombre 0 FAIRE ÉCRIRE "Nombre positif?" LIRE NombreFINTANTQUE

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

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 NombreJUSQU’À Nombre > 0

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

Structure RÉPÉTER-JUSQU’À (suite)• Formulation

• Notez que les itérations se poursuivent tant que la condition n’est pas satisfaite

RÉPÉTER Séquence d’opérationsJUSQU’À Condition

NonCondition?

Séquenced’opérations

Oui

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

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 = 0TANTQUE Nombre 0 FAIRE ÉCRIRE "Nombre positif?" LIRE NombreFINTANTQUE

RÉPÉTER ÉCRIRE "Nombre positif?" LIRE NombreJUSQU’À Nombre > 0

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

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 NombreTANTQUE Nombre 0

RÉPÉTER ÉCRIRE "Nombre positif?" LIRE NombreJUSQU’À Nombre > 0

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

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'À

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

Exercice #1

• Solution : pseudo-code

Maximum = 0 \\ initialisationRÉ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 ContinueJUSQU’À Continue = "non" \\ Afficher le maximum trouvéÉCRIRE "Nombre maximum =", Maximum

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

Exercice #1

• Solution : organigramme– On exploite le symbole

connecteur ( )

Début

Lire Nombre

Écrire "Nombre non-négatif?"

Maximum = 0

ABFin

É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

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

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

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

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

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

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 lacondition d'itération

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

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

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

Questions quiz (suite)

• Lequel des algorithmes suivants ne fonctionne pas, et pourquoi?– Afficher la somme des valeurs autres que 0 lues

Accum = 0TANTQUE Valeur 0 FAIRE Accum = Accum + Valeur LIRE ValeurFINTANTQUEÉCRIRE Accum

Accum = 0RÉPÉTER LIRE Valeur Accum = Accum + ValeurJUSQU'À 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

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

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