160 likes | 306 Views
GEF 243B Programmation informatique appliquée. Flot de contrôle et énoncés de sélection §5.2 - 5.3. Revue. Quelles sont les trois opérateurs logiques en C? Quelle est la précédence entre eux? Comment applique-t-on la règle de DeMorgan aux expressions logiques. Synopsis. Contrôle du flot
E N D
GEF 243BProgrammation informatique appliquée Flot de contrôle et énoncés de sélection §5.2 - 5.3
Revue • Quelles sont les trois opérateurs logiques en C? • Quelle est la précédence entre eux? • Comment applique-t-on la règle de DeMorgan aux expressions logiques JGA Beaulieu
Synopsis • Contrôle du flot • if-else • else-if • Expressions conditionnelles • Switch JGA Beaulieu
Structures du langage et contrôle du flot • Les première abstractions que les scientifiques en informatique ont devisé ont été les structures de langage. • Au lieu d’avoir continuellement à réécrire le même code pour contrôler le flot d’un programme en langage symboliques (assembleur), les langages de haut niveau nous fournissent des structures ‘réutilisables’ • Dans les années 1960, Edsger Dijkstra a noté que nous avons seulement besoin de trois structures: La séquence, le if-else et la boucle while JGA Beaulieu
Énoncé if-else • Différent de MATLAB!! if (expression logique) Statement else Statement JGA Beaulieu
Énoncé if-else • Exemple (avec un énoncé composé) if (taxable == TRUE) { itemTaxable++; prix *= tauxTaxe; //tauxTaxe 1.15 } else itemNonTaxable++; JGA Beaulieu
Énoncé else-if • C n’a pas de structure pour un énoncé else-if, mais vous pouvez obtenir le même résultat avec le style if (note>=90) grade = ‘A’; else if (note >= 80) grade = ‘B’; else if (note >= 70) grade = ‘C’; else if (note >= 60) grade = ‘D’; else grade = ‘F’; JGA Beaulieu
Énoncé else-if • Utilisez un énoncé else-if seulement si vous voulez faire des comparaisons sur une seule variable qui a une possibilité de plusieurs valeurs avec des plages pour les catégories (pas des valeurs intégrales) • Ne l’utilisez pas si vous avez des conditions multiples (i.e. évaluation de plusieurs variables). • Ce que vous faites dans ce cas est simplement d’imbriquer vos énoncés if-else. JGA Beaulieu
Expression conditionnelle • C nous offre une alternative commode à l’énoncé if-else traditionnel pour les sélection à deux choix l’expression conditionnelle: expression1 ? expression2 : expression3 • Si expression1 est vrai, expression2 est la valeur de l’expression conditionnelle, sinon, la valeur est l’expression3 JGA Beaulieu
Expression conditionnelle • Ex.: a = 1, b = 2, c = 5 a == b ? c-- : c++; //ici c = 6 a != b ? c-- : c++; //ici c = 4 a >= b ? c+=b : c-=b ; //qu’est c? JGA Beaulieu
Énoncé switch • Mais que faisons nous si nous avons quelque chose comme cela: if (flag == 0) {faitChose0} else if (flag == 1) {faitChose1} else if (flag == 2) {faitChose2} else if (flag == 3) {faitChose3} else if (flag == 4) {faitChose4} else {faitAutreChose} • Utilisez un énoncé switch JGA Beaulieu
Énoncé switch • Switch est une généralisation de l’énoncé if-else. Encore comme Java: switch (expression logique) { case constante1: énoncé1; //notez les énoncés énoncé2; //multiples break; case constante2: énoncé3; break; //sort après ce cas default: énoncé4; } //switch JGA Beaulieu
Quiz Time • Quelles sont les trois concepts que les humains utilisent pour faire face à la complexité dans la résolution des problèmes? • Quel genre de décomposition utilise-t-on dans les langages structurels comme C? JGA Beaulieu
Problèmes de révision 1 • Assumez que gazRestant est une variable réel qui estime le montant de gaz dans votre réservoir • Donnez un énoncé qui va allumer l’indicateur presqueVide (bool) si il reste moins de 2 litres de gaz JGA Beaulieu
Problèmes de révision 2 • Testez la phase theta et vérifiez si c’est zéro double theta • Utilisez un structure if else pour vous assurez que: –PI <= theta <= PI JGA Beaulieu
Problèmes de révision 3 • Il y a des étudiants en GE, GI, et SI dans GEF243 • Définissez une constante pour chaque groupe d’étudiant en utilisant un #define • Déclarez une variable pour compter le nombre d’étudiants dans chaque groupe et initialisez la à zéro • Utilisez un énoncé switch pour incrémenter le compteur pour le bon groupe • Si un groupe inconnu est entré, incrémentez le compte des erreurs #define GE 0 //un exemple int groupeEtudiants = 0; //la variable à tester JGA Beaulieu