Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

30
Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE

Transcript of Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Page 1: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Section IV

Structures conditionnelles

Algorithmes et résolution de problèmes18279 FGE

Page 2: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Contenu

• Introduction• Structure SI-ALORS-SINON-FINSI

– Dans l’organigramme– Le pseudo-code

• Variante SI-ALORS-FINSI• Conditions complexes• Exemples & exercice

– Dont un exercice à remettre à l’enseignant

• Devoir #2

Page 3: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Introduction

• Les algorithmes présentés auparavant sont élémentaires– Séquence simple d’opérations

• Souvent, les opérations à accomplir peuvent varier dans un algorithme– L’algorithme doit décider des opérations à

accomplir selon les données fournies ou diverses situations

• L’ordinateur est apte à appliquer la prise de décision

Page 4: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #1

• Rapport hebdomadaire de ventes (suite)– Suite de l’exemple vu la semaine dernière

(Section III)• Commission de 6% sur les ventes à prix régulier• Commission de 3% sur les ventes à prix réduit• Montant de base de 200$ garantie

– On ajoute un bonus à la paie du vendeur• Le vendeur reçoit en plus 1% du total de ses ventes

si les ventes atteignent ou dépassent 5000$

– Modifier l’algorithme en conséquence

Page 5: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #1 (suite)

• Il faut ajouter à la solution précédente (sans bonus)– Une séquence d’opérations

calculant le bonus

– Une opération conditionnelle déterminant quand ajouter le bonus au total

• Il faut donc un symbole pour représenter la condition dans l’organigramme

Lire VentesReg, VentesSpec

RegComm = VentesReg * 0.06

Début

Fin

SpecComm = VentesSpec * 0.03

TotalComm = RegComm + SpecComm + 200

Écrire TotalComm

Page 6: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Structure SI-ALORS-SINON-FINSI

• Pour représenter une séquence conditionnelle d’opérations dans l’organigramme– On utilise le

losange : c’est lesymbole conditionnel

• Pour représenter la convergence des flux d’exécution– On utilise le cercle :

c’est le symbole de convergence

La condition estsatisfaite?

OuiNon

SISI

SINONSINON

FINSIFINSI

ALORSALORS

Page 7: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Structure SI-ALORS-SINON-FINSI

• Notes sur la structure conditionnelle– La conditioncondition doit être clairement

stipulée dans le symboleconditionnel

– Les flux sortant sontidentifiésidentifiés selon lerésultat de la condition

– Les deux flux sortantdoivent éventuellementconvergerconverger

Heures >40

OuiNon

Page 8: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #1 (suite)

• Pour ajouter le bonus conditionnel de 1% à l’algorithme, nous définissons deux nouvelles variables intermédiaires TotVentes :

Total des ventes Bonus :

Bonus de 1% si les ventes

atteignent ou excèdent 5000$

TotVentes 5000? OuiNon

Bonus = 0 Bonus = TotVentes * 0.01

TotVentes = VentesReg + VentesSpec

Page 9: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #1 (suite)

• Algorithme révisé– Insérer le calcul conditionnel

du bonus

(TotVentes et Bonus)

– Réviser le calcul de la commission totale

(TotalComm)

Lire VentesReg, VentesSpec

RegComm = VentesReg * 0.06

Début

Fin

SpecComm = VentesSpec * 0.03

TotalComm = RegComm + SpecComm + Bonus + 200

Écrire TotalComm

TotVentes 5000? OuiNon

Bonus = 0 Bonus = TotVentes * 0.01

TotVentes = VentesReg + VentesSpec

Page 10: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Pseudo-code

• L’organigramme représente graphiquement l’algorithme– C’est visuel (un dessin vaut mille mots!), mais

ça exige plus de travail de mise en page et plus d’espace sur papier

• Le pseudo-code représente textuellement l’algorithme– Moins visuel, mais plus facile à mettre sur

papier et requiert moins d’espace

Page 11: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Pseudo-code (suite)

• L’algorithme est décrit sous forme de mots et phrases– Semblable aux langages de programmation

(Visual Basic, Pascal, C, …)– Cependant, on utilise une syntaxe moins rigide

• Le pseudo-code est généralement préféré à l’organigramme– Plus rapide à écrire et plus facile à traduire en

un langage de programmation

Page 12: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #1 (suite)

• Pseudo-code de l’algorithme– Les mots-clés opérationnels sont écris en

majuscules•LIRE, ÉCRIRE,SI, ALORS, SINON, FINSI

– L’indentation dans la structureSI… rehausse la lisibilité

LIRE VentesReg, VentesSpec

RegComm = VentesReg * 0.06

SpecComm = VentesSpec * 0.03

TotVentes = VentesReg + VentesSpec

SI TotVentes 5000 ALORS

Bonus = TotVentes * 0.01

SINON

Bonus = 0

FINSI

TotalComm = RegComm + SpecComm + Bonus + 200

ÉCRIRE TotalComm

Page 13: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #1 (suite)

• La structure conditionnelle a une forme standardisée

SI condition ALORS séquence d’opérationsSINON séquence d’opérationsFINSI

• Par souci de lisibilité,cette forme doit toujours être respectée

LIRE VentesReg, VentesSpec

RegComm = VentesReg * 0.06

SpecComm = VentesSpec * 0.03

TotVentes = VentesReg + VentesSpec

SI TotVentes 5000 ALORS

Bonus = TotVentes * 0.01

SINON

Bonus = 0

FINSI

TotalComm = RegComm + SpecComm + Bonus + 200

ÉCRIRE TotalComm

Page 14: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Structure SI-ALORS-FINSI

• Une variante de la structure conditionnelle est employée lorsqu’il n’y a aucune séquence d’opérations à exécuter si la condition est fausse

SI condition ALORS

séquence d’opérations

FINSI

La condition estsatisfaite?

Oui

Non

Page 15: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #2

• Rapport de temps supplémentaire– Le superviseur doit produire un rapport listant

tous les employés ayant travaillé en temps supplémentaire durant la semaine

– Pour chaque employé ayant travaillé plus de 40 heures, le rapport doit afficher son nom, son numéro d’employé et le nombre d’heures excédentaires

– Si l’employé n’a pas excédé 40 heures de travail, le rapport ne doit pas contenir son nom

Page 16: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #2 (suite)

• Nous devons écrire l’algorithme produisant une ligne du rapport (i.e. pour un employé)

• Données à lire– Nom de l’employé, son numéro et le nombre

d’heures travaillées

• Résultats à produire– Si l’employé a travailler plus de 40 heures,

afficher son nom, son numéro d’employé et les heures supplémentaires travaillées

Page 17: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #2 (suite)

• Définition des variables– Nom nom de l’employé– Numero numéro de l’employé– TotHeures nombre total d’heures

travailléesdurant la semaine

• Variables intermédiaires – HeuresSup Nombre d’heures

supplémentaires travaillées

Page 18: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #2 (suite)

• Pseudo-code et organigramme

LIRE Nom, Numero, TotHeures

SI TotHeures > 40 ALORS

HeuresSup = TotHeures - 40

ÉCRIRE Nom, Numero, HeuresSup

FINSI

Fin

TotHeures > 40?Oui

Non

HeuresSup = TotHeures - 40

Écrire Nom, Numero, HeuresSup

Lire Nom, Numero, TotHeures

Début

Page 19: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Avantage du pseudo-code

• Le pseudo-code est facilement traduisible en un langage de programmationPseudo-code PascalLIRE Nom, Numero, TotHeures

SI TotHeures > 40 ALORS

HeuresSup = TotHeures - 40

ÉCRIRE Nom, Numero, HeuresSup

FINSI

PROGRAM Exemple;

VAR

Nom: STRING;

Numero, TotHeures: INTEGER;

BEGIN

READLN(Nom, Numero, TotHeures);

IF TotHeures > 40 THEN BEGIN

HeuresSup := TotHeures – 40;

WRITELN(Nom, Numero, HeuresSup);

END

END.

Page 20: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #3

• Rapport de paie d’employé– Données à lire sur l’employé

• Son nom, numéro d’employé, nombre d’heures travaillées et son taux horaire

– Résultat à afficher• Le nom de l’employé, son numéro et le total de sa

paie. Cette dernière est calculée en fonction du taux horaire pour les premières 40 heures travaillées, et à une fois et demi son taux horaire pour les heures supplémentaires

Page 21: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #3 (suite)

• Étapes de développement de l’algorithme– Assurez-vous de bien comprendre le problème à résoudre

(posez des questions)

– Définissez les variables d’entrées et les variables de sorties

– Faites les calculs sur papier pour un exemple de données; vous saisirez mieux le processus de solution

– Commencez à produire le pseudo-code ou l’organigramme, à partir du début

– En cours de développement, définissez les variables intermédiaires au besoin

– Finalement validez l’algorithme, et corrigez-le au besoin

Page 22: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #3 (suite)

• Variables – Nom nom de l’employé– Numero numéro d’employé– Heures heures totales travaillées– Taux taux horaire

• Variables intermédiaires– PaieReg paie au taux régulier– PaieSup paie au taux bonifié– PaieTot paie totale

Page 23: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #3 (suite)

• Pseudo-code

LIRE Nom, Numero, Heures, Taux

SI Heures > 40 ALORS

PaieReg = 40 * Taux

PaieSup = (Heures – 40) * (Taux * 1.5)

PaieTot = PaieReg + PaieSup

SINON

PaieTot = Heures * Taux

FINSI

ÉCRIRE Nom, Numero, PaieTot

Page 24: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exemple #3 (suite)

• OrganigrammeLire Nom, Numero, Heures, Taux

Début

Fin

Heures > 40?OuiNon

PaieTot = Heures * Taux PaieReg = 40 * Taux

Écrire Nom, Numero, PaieTot

PaieSup = (Heures – 40) * (Taux * 1.5)

PaieTot = PaieReg + PaieSup

Page 25: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Validation

• Pour valider un algorithme (à l’aide des diagramme de variables), il faut numéroter les opérations du pseudo-code et/ou de l’organigramme

• Pseudo-codenuméroté :

1. LIRE Nom, Numero, Heures, Taux

2. SI Heures > 40 ALORS

3. PaieReg = 40 * Taux

4. PaieSup = (Heures – 40) * (Taux * 1.5)

5. PaieTot = PaieReg + PaieSup

6. SINON

7. PaieTot = Heures * Taux

8. FINSI

9. ÉCRIRE Nom, Numero, PaieTot

Page 26: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

1.

Validation (suite)

• Organigrammenuméroté– Les numéros sont utilisés

pour identifier les opérations dans les diagrammes de variables

3

2

4 5

6

7

8

1

9

Lire Nom, Numero, Heures, Taux

Début

Fin

Heures > 40?OuiNon

PaieTot = Heures * Taux PaieReg = 40 * Taux

Écrire Nom, Numero, PaieTot

PaieSup = (Heures – 40) * (Taux * 1.5)

PaieTot = PaieReg + PaieSup

Variable Valeur Variable Valeur

Nom PaieReg

Numero PaieSup

Heures PaieTot

Taux

Page 27: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Conditions complexes

• Conditions simplesa < b, a b, a > b, a b, a = b, a b

• Conditions complexes– On peut combiner des conditions simples avec et et ou(a 5) et (a 100)

(a = 10) ou (a > 20)

– La négation (non) peut inverser une conditionnon((a 5) et (a 100))

Page 28: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Conditions complexes (suite)

• Exemple : afficher le mot  ALARME si la température quitte la zone de confort

LIRE Temperature

SI (Temperature < 18) ou (Temperature > 24) ALORS

ÉCRIRE "ALARME"

FINSI Fin

Temperature < 18Ou

Temperature > 24?

Oui

NonÉcrire "ALARME"

Lire Temperature

Début

Page 29: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Exercice #1

• À remettre à l’enseignant avant la fin du cours– Faire le travail à la main, sur papier

• Trouver le plus petit nombre– Afficher le plus petit nombre parmi trois nombres

fournis en entrée

• Vous devez remettre à l’enseignant– Le pseudo-code ou l’organigramme de votre algorithme

– La description des variables

Page 30: Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE.

Devoir #2

• Énoncé distribué sur le site Web

• Algorithme calculant la note finale d’un(e) étudiant(e) à partir de trois notes d’examen– Vous devez fournir le pseudo-code (fichier

Word) et l’organigramme (fichier Visio) de votre algorithme