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

Upload: agace-toussaint

Post on 03-Apr-2015

109 views

Category:

Documents


1 download

TRANSCRIPT

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