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 Algorithmes et résolution de problèmes 18279 FGE.

Présentations similaires


Présentation au sujet: "Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE."— Transcription de la présentation:

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

2 Contenu Introduction Structure SI-ALORS-SINON-FINSI –Dans lorganigramme –Le pseudo-code Variante SI-ALORS-FINSI Conditions complexes Exemples & exercice –Dont un exercice à remettre à lenseignant Devoir #2

3 Introduction Les algorithmes présentés auparavant sont élémentaires –Séquence simple dopérations Souvent, les opérations à accomplir peuvent varier dans un algorithme –Lalgorithme doit décider des opérations à accomplir selon les données fournies ou diverses situations Lordinateur est apte à appliquer la prise de décision

4 Exemple #1 Rapport hebdomadaire de ventes (suite) –Suite de lexemple 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 lalgorithme en conséquence

5 Exemple #1 (suite) Il faut ajouter à la solution précédente (sans bonus) –Une séquence dopé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 lorganigramme Lire VentesReg, VentesSpec RegComm = VentesReg * 0.06 Début Fin SpecComm = VentesSpec * 0.03 TotalComm = RegComm + SpecComm Écrire TotalComm

6 Structure SI-ALORS-SINON-FINSI Pour représenter une séquence conditionnelle dopérations dans lorganigramme –On utilise le losange : cest le symbole conditionnel Pour représenter la convergence des flux dexécution –On utilise le cercle : cest le symbole de convergence La condition est satisfaite? OuiNon SI SINON FINSI ALORS

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

8 Exemple #1 (suite) Pour ajouter le bonus conditionnel de 1% à lalgorithme, 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

9 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 Écrire TotalComm TotVentes 5000? OuiNon Bonus = 0 Bonus = TotVentes * 0.01 TotVentes = VentesReg + VentesSpec

10 Pseudo-code Lorganigramme représente graphiquement lalgorithme –Cest visuel (un dessin vaut mille mots!), mais ça exige plus de travail de mise en page et plus despace sur papier Le pseudo-code représente textuellement lalgorithme –Moins visuel, mais plus facile à mettre sur papier et requiert moins despace

11 Pseudo-code (suite) Lalgorithme 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é à lorganigramme –Plus rapide à écrire et plus facile à traduire en un langage de programmation

12 Exemple #1 (suite) Pseudo-code de lalgorithme –Les mots-clés opérationnels sont écris en majuscules LIRE, ÉCRIRE, SI, ALORS, SINON, FINSI –Lindentation 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 ÉCRIRE TotalComm

13 Exemple #1 (suite) La structure conditionnelle a une forme standardisée SI condition ALORS séquence dopérations SINON séquence dopérations 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 ÉCRIRE TotalComm

14 Structure SI-ALORS-FINSI Une variante de la structure conditionnelle est employée lorsquil ny a aucune séquence dopérations à exécuter si la condition est fausse SI condition ALORS séquence dopé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 demployé et le nombre dheures excédentaires –Si lemployé na pas excédé 40 heures de travail, le rapport ne doit pas contenir son nom

16 Exemple #2 (suite) Nous devons écrire lalgorithme produisant une ligne du rapport (i.e. pour un employé) Données à lire –Nom de lemployé, son numéro et le nombre dheures travaillées Résultats à produire –Si lemployé a travailler plus de 40 heures, afficher son nom, son numéro demployé et les heures supplémentaires travaillées

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

18 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

19 Avantage du pseudo-code Le pseudo-code est facilement traduisible en un langage de programmation Pseudo-codePascal 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 demployé –Données à lire sur lemployé Son nom, numéro demployé, nombre dheures travaillées et son taux horaire –Résultat à afficher Le nom de lemployé, 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 lalgorithme –Assurez-vous de bien comprendre le problème à résoudre (posez des questions) –Définissez les variables dentré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 lorganigramme, à partir du début –En cours de développement, définissez les variables intermédiaires au besoin –Finalement validez lalgorithme, et corrigez-le au besoin

22 Exemple #3 (suite) Variables –Nom nom de lemployé –Numero numéro demployé –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? OuiNon PaieTot = Heures * Taux PaieReg = 40 * Taux Écrire Nom, Numero, PaieTot PaieSup = (Heures – 40) * (Taux * 1.5) PaieTot = PaieReg + PaieSup

25 Validation Pour valider un algorithme (à laide des diagramme de variables), il faut numéroter les opérations du pseudo-code et/ou de lorganigramme Pseudo-code numé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

26 1. Validation (suite) Organigramme numéroté –Les numéros sont utilisés pour identifier les opérations dans les diagrammes de variables 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 VariableValeurVariableValeur NomPaieReg NumeroPaieSup HeuresPaieTot Taux

27 Conditions complexes Conditions simples 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 LIRE Temperature SI (Temperature 24) ALORS ÉCRIRE "ALARME" FINSI Fin Temperature < 18 Ou Temperature > 24? Oui Non Écrire "ALARME" Lire Temperature Début

29 Exercice #1 À remettre à lenseignant 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 à lenseignant –Le pseudo-code ou lorganigramme de votre algorithme –La description des variables

30 Devoir #2 Énoncé distribué sur le site Web Algorithme calculant la note finale dun(e) étudiant(e) à partir de trois notes dexamen –Vous devez fournir le pseudo-code (fichier Word) et lorganigramme (fichier Visio) de votre algorithme


Télécharger ppt "Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE."

Présentations similaires


Annonces Google