ECE - Algo et C - Cours 3 - tests et boucles.pdf
Document Details
Uploaded by PhenomenalNavy
École Supérieure de Commerce de Sophia Antipolis
Full Transcript
Plan du cours 1. Logique Opérateurs logiques Tables de vérité Equivalences Exercice – table de vérité Les opérateurs de comparaison en C 2. Langage C Tests Boucles 2 Algorithmique et prog. structurée en C – Cours n°3 Théorie Avant de commencer à coder... Un peu de...
Plan du cours 1. Logique Opérateurs logiques Tables de vérité Equivalences Exercice – table de vérité Les opérateurs de comparaison en C 2. Langage C Tests Boucles 2 Algorithmique et prog. structurée en C – Cours n°3 Théorie Avant de commencer à coder... Un peu de logique 3 Algorithmique et prog. structurée en C – Cours n°3 Théorie Booléens - Valeurs de vérité {VRAI, FAUX} En informatique, est considéré comme vrai tout ce qui n'est pas nul (= 0). 4 Algorithmique et prog. structurée en C – Cours n°3 Théorie Opérateurs logiques - Conjonction, disjonction et négation Avec et valant soit , soit. 5 Algorithmique et prog. structurée en C – Cours n°3 Théorie Tables de vérité des opérateurs logiques ET, OU et NON * Si (premier opérande) est , alors n'est même pas évalué. Il est donc important de réfléchir à la position des opérandes dans une disjonction : vaut-il mieux écrire ou ? 6 Algorithmique et prog. structurée en C – Cours n°3 Théorie Tables de vérité - Exemple On remarque que l'on peut identifier des équivalences… (slide suivante). 7 Algorithmique et prog. structurée en C – Cours n°3 Théorie Équivalences remarquables 8 Algorithmique et prog. structurée en C – Cours n°3 Théorie Exercice - Table de vérité Remplissez la table de vérité suivante : 9 Algorithmique et prog. structurée en C – Cours n°3 Théorie Exercice - Table de vérité Aide : on commence par décomposer… 10 Algorithmique et prog. structurée en C – Cours n°3 Théorie Exercice - Table de vérité Correction 11 Algorithmique et prog. structurée en C – Cours n°3 Théorie Exercice - Table de vérité Correction 12 Algorithmique et prog. structurée en C – Cours n°3 Théorie Exercice - Table de vérité Correction 13 Algorithmique et prog. structurée en C – Cours n°3 Théorie Exercice - Table de vérité Correction 14 Algorithmique et prog. structurée en C – Cours n°3 Théorie Mais que seront et dans nos programmes ? Ce sont soit : ๏ des valeurs (booléennes) Exemples : 1 et tout ce qui n'est pas 0 (2, -3...) sont considérés comme vrai et 0 est considéré comme faux. NB : En C++ ainsi que dans d'autres langages, le type booléen existe avec comme valeurs : true/false. ๏ des comparaisons, calculs, fonctions… retournant un booléen. Exemple : la comparaison (age >= 18), qui retourne soit vrai, soit faux, en fonction de la valeur de age. 15 Algorithmique et prog. structurée en C – Cours n°3 Fin de la théorie Revenons au C! 16 Algorithmique et prog. structurée en C – Cours n°3 Les opérateurs de comparaison en C Chacun de ces opérateurs retourne vrai (1) ou faux (0). Opérateur Symbole en C Exemple en C Résultat (booléen) Égalité == cpt == 3 1 Strictement inférieur < 3 < 3 0 Strictement supérieur > age > 16 1 Inférieur ou égal = 18 1 Différent != 3 != 3 0 17 Algorithmique et prog. structurée en C – Cours n°3 Les opérateurs de comparaison en C Ne pas confondre : ๏ l'opérateur de comparaison '==' retournant 1 (vrai) ou 0 (faux). ๏ l'opérateur d'affectation '=' donnant une valeur à une variable. Exemple : int continuer = 1; ❌ while (continuer = 1) { // boucle infinie, il faut écrire == pour comparer printf("Voulez-vous continuer ? Saisissez 1 pour continuer, 0 sinon.\n"); scanf("%d", &continuer); } 18 Algorithmique et prog. structurée en C – Cours n°3 Priorité des opérateurs Rappel Du plus prioritaire au moins prioritaire. En cas de doute, utilisez des parenthèses :! rang < 5 || observations == 0 && bonus >= 1.5 // est équivalent à : rang < 5 || (observations == 0 && bonus >= 1.5) // mais pas à : (rang < 5 || observations == 0) && bonus >= 1.5 19 Algorithmique et prog. structurée en C – Cours n°3 Exercice - Comparaisons en C Soient deux variables dans un programme C : int var1 = 5, var2 = 9; Que valent les expressions suivantes ? (vrai ou faux) ๏ var1 == 5 ? ๏ !((var1 % 3) == 0) ? ๏ (var1 < var2) && (var1