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 IV Structures conditionnelles

Présentations similaires


Présentation au sujet: "Section IV Structures conditionnelles"— Transcription de la présentation:

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

2 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

3 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

4 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

5 Exemple #1 (suite) Lire VentesReg, VentesSpec RegComm = VentesReg * 0.06 Début Fin SpecComm = VentesSpec * 0.03 TotalComm = RegComm SpecComm + 200 Écrire TotalComm 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

6 Structure SI-ALORS-SINON-FINSI
Pour représenter une séquence conditionnelle d’opérations dans l’organigramme On utilise le losange : c’est le symbole conditionnel Pour représenter la convergence des flux d’exécution On utilise le cercle : c’est le symbole de convergence SI La condition est satisfaite? Oui Non SINON ALORS FINSI

7 Structure SI-ALORS-SINON-FINSI
Notes sur la structure conditionnelle La condition doit être clairement stipulée dans le symbole conditionnel Les flux sortant sont identifiés selon le résultat de la condition Les deux flux sortant doivent éventuellement converger Heures > 40 Oui Non

8 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? Oui Non Bonus = 0 Bonus = TotVentes * 0.01 TotVentes = VentesReg VentesSpec

9 Exemple #1 (suite) Algorithme révisé
Lire VentesReg, VentesSpec RegComm = VentesReg * 0.06 Début Fin SpecComm = VentesSpec * 0.03 TotalComm = RegComm + SpecComm Bonus + 200 Écrire TotalComm TotVentes  5000? Oui Non Bonus = 0 Bonus = TotVentes * 0.01 TotVentes = VentesReg VentesSpec 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)

10 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

11 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

12 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 structure SI… 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

13 Exemple #1 (suite) La structure conditionnelle a une forme standardisée SI condition ALORS séquence d’opérations SINON FINSI 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

14 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 est satisfaite? Oui Non

15 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

16 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

17 Exemple #2 (suite) Définition des variables Variables intermédiaires
Nom nom de l’employé Numero numéro de l’employé TotHeures nombre total d’heures travaillées durant la semaine Variables intermédiaires HeuresSup Nombre d’heures supplémentaires travaillées

18 Exemple #2 (suite) Pseudo-code et organigramme
Fin TotHeures > 40? Oui Non HeuresSup = TotHeures - 40 Écrire Nom, Numero, HeuresSup Lire Nom, Numero, TotHeures Début Pseudo-code et organigramme LIRE Nom, Numero, TotHeures SI TotHeures > 40 ALORS HeuresSup = TotHeures - 40 ÉCRIRE Nom, Numero, HeuresSup FINSI

19 Avantage du pseudo-code
Le pseudo-code est facilement traduisible en un langage de programmation Pseudo-code Pascal LIRE 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.

20 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

21 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

22 Exemple #3 (suite) Variables Variables intermédiaires
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

23 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

24 Exemple #3 (suite) Organigramme Lire Nom, Numero, Heures, Taux Début
Fin Heures > 40? Oui Non PaieTot = Heures * Taux PaieReg = 40 * Taux Écrire Nom, Numero, PaieTot PaieSup = (Heures – 40) * (Taux * 1.5) PaieTot = PaieReg + PaieSup Organigramme

25 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-code numéroté : 1. LIRE Nom, Numero, Heures, Taux 2. SI Heures > 40 ALORS PaieReg = 40 * Taux PaieSup = (Heures – 40) * (Taux * 1.5) PaieTot = PaieReg + PaieSup 6. SINON PaieTot = Heures * Taux 8. FINSI 9. ÉCRIRE Nom, Numero, PaieTot

26 Validation (suite) Organigramme numéroté
3 2 4 5 6 7 8 1 9 Lire Nom, Numero, Heures, Taux Début Fin Heures > 40? Oui Non PaieTot = Heures * Taux PaieReg = 40 * Taux Écrire Nom, Numero, PaieTot PaieSup = (Heures – 40) * (Taux * 1.5) PaieTot = PaieReg + PaieSup Organigramme numéroté Les numéros sont utilisés pour identifier les opérations dans les diagrammes de variables 1. Variable Valeur Nom PaieReg Numero PaieSup Heures PaieTot Taux

27 Conditions complexes Conditions simples Conditions complexes
a < 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 condition non((a  5) et (a  100))

28 Conditions complexes (suite)
Exemple : afficher le mot  ALARME si la température quitte la zone de confort Fin Temperature < 18 Ou Temperature > 24? Oui Non Écrire "ALARME" Lire Temperature Début LIRE Temperature SI (Temperature < 18) ou (Temperature > 24) ALORS ÉCRIRE "ALARME" FINSI

29 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

30 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


Télécharger ppt "Section IV Structures conditionnelles"

Présentations similaires


Annonces Google