3. expressions logiques et répétitives
DESCRIPTION
3. Expressions logiques et répétitives. Les expressions logiques La répétitive La variante do.. while La variante for Opérateurs d’incrémentation. L’expression logique. Appartient à la famille des expressions booléennes Est soit vraie ou fausse Permet de représenter une condition - PowerPoint PPT PresentationTRANSCRIPT
Joan S. Morales - Introduction à l'algo. et la programmation 1
3. Expressions logiques et répétitives
– Les expressions logiques– La répétitive
– La variante do..while– La variante for
– Opérateurs d’incrémentation
Joan S. Morales - Introduction à l'algo. et la programmation 2
L’expression logiqueAppartient à la famille des expressions
booléennesEst soit vraie ou faussePermet de représenter une condition Met en relation deux expressions
relationnelles
!(Age < AgeAdulte)(Age >= AgeAdulte) && (Age < AgeRetraite)(Age < AgeAdulte) || (Age >= AgeRetraite)
L’opérateur logique NON
p ! p
Vrai Faux
Faux Vrai
Joan S. Morales - Introduction à l'algo. et la programmation 3
L’opérateur logique ET
p q p && q
Vrai Vrai Vrai
Vrai Faux Faux
Faux Vrai Faux
Faux Faux Faux
Joan S. Morales - Introduction à l'algo. et la programmation 4
L’opérateur logique OU
p q p || q
Vrai Vrai Vrai
Vrai Faux Vrai
Faux Vrai Vrai
Faux Faux Faux
Joan S. Morales - Introduction à l'algo. et la programmation 5
Priorité
OpérateurAssociativi
téOpérat
eurPseudocode
C++
1 NON ! Unaire
2 ET && Binaire
3 OU || Binaire
Joan S. Morales - Introduction à l'algo. et la programmation 6
Opérateurs logiques
6
N.E.O!
Joan S. Morales - Introduction à l'algo. et la programmation
ExempleLe prix normal du billet est de 10$Un rabais de 3$ est accordé si le client a
moins de 18 ans ou 65 ans et plusLe client doit présenter sa carte d’identité.Calculer le prix du billet.
7
Joan S. Morales - Introduction à l'algo. et la programmation
Exemple (suite)int PrixDuBillet = 10;int Age;bool Carte;cin >> Age;cin >> Carte;if( ){ PrixDuBillet = PrixDuBillet -3;}
8
Exercice 1a) (12 > 8) && (14 < 12)b) (12 > 8) && ! (14 < 12)c) ! ((12 > 8) && (14 < 12))d) (3 <= 3) || (12 > 8) && (14 < 12) e) (12 > 8) && ! (14 < 12) || (3 <= 3)f) (12 > 8) && (14 < 12) || ! (3 <= 3)g) (12 > 8) && ! (14 < 12) || ! (3 <= 3)h) !((12 > 8) && ! (14 < 12) || ! (3 <= 3))i) !(!(12 > 8) && ! (14 < 12) || ! (3 <= 3))j) !(!(12 > 8) && ! (14 < 12) || ! (3 <= 3)) || (42 >= 0)
Joan S. Morales - Introduction à l'algo. et la programmation 9
Exercice 2a) p || qb) p && qc) ! (p && q)d) ! ((p || q) && q)e) (p || q) && ! (p)f) p || q && ! (p)g) p && q || !(p && q)h) p && q || !(p || q)i) !(p && q) && !(p || q)j) !(p || q) && !(p && q)k) p || !(q) && !(p) && q
Joan S. Morales - Introduction à l'algo. et la programmation 10
p qvrai
vrai
vrai
faux
faux
vrai
faux
faux
Exercice 1 - Solution
a) Fauxb) Vraic) Vraid) Vraie) Vrai
f) Fauxg) Vraih) Fauxi) Vraij) Vrai
Joan S. Morales - Introduction à l'algo. et la programmation 11
Exercice 2 - Solution
a) 1,2,3b) 1c) 2,3,4d) 2,4e) 3f) 1,2,3
g) 1,2,3,4h) 1,4i) 4j) 4k) 1,2
Joan S. Morales - Introduction à l'algo. et la programmation 12
Les erreurs de logiqueLa Tautologie: expression
logique qui est toujours vraie!Age > 18 || Age < 65
La contradiction: expression logique qui est toujours fausseAge < 18 && Age > 65
Joan S. Morales - Introduction à l'algo. et la programmation 13
Les lois de De Morgan
! (p && q) = ! p || ! q–NON(il fait beau ET il fait chaud) =
il ne fait pas beau OU il ne fait pas chaud
! (p || q) = ! p && ! q–NON(il pleut OU il neige) =
il ne pleut pas ET il ne neige pas
Joan S. Morales - Introduction à l'algo. et la programmation 14
Joan S. Morales - Introduction à l'algo. et la programmation 15
La répétitiveContexte
– Vous devez afficher à l’écran les nombres entiers de 1 à 5 inclusivement
Solution 1 - Représentation linéairecout << "1";cout << "2";cout << "3";cout << "4";cout << "5";
Et si on veut compter jusqu’à 50??15
Joan S. Morales - Introduction à l'algo. et la programmation 16
La répétitive (suite)Solution 2 - Représentation de transitionCompteur = 1;cout << Compteur; // Permet d'écrire 1
Compteur = Compteur + 1;cout << Compteur; // Permet d'écrire 2
Compteur = Compteur + 1;cout << Compteur; // Permet d'écrire 3
Compteur = Compteur + 1;...cout << Compteur; // Permet d'écrire 50
Compteur = Compteur + 1;
16
Joan S. Morales - Introduction à l'algo. et la programmation 17
La répétitive (suite)Solution 3 - Représentation itérativeLes instructions qui se répètent sont
cout << Compteur;Compteur = Compteur + 1
Voici la structure répétitiveconst int Max = 50;int Compteur = 1;while (Compteur <= Max){ cout << Compteur; Compteur = Compteur + 1;} 17
Notez l’absence de ;
Joan S. Morales - Introduction à l'algo. et la programmation 18
Les composants d’une répétitive classique
const int Max = 50;int Compteur = 1;while (Compteur <= Max){ cout << Compteur; Compteur = Compteur + 1;}
18
Initialisation de la variable de
contrôleCondition de
poursuite
Modification de la variable de
contrôle
Traitement
Joan S. Morales - Introduction à l'algo. et la programmation 19
Remarques Il faut correctement initialiser la variable de
contrôle Vérifiez la condition de poursuite Le traitement ne devrait pas modifier la valeur de
la variable de contrôle Il ne faut pas oublier de modifier la variable de
contrôle après le traitement Attention aux boucles infinies!! Les opérations de cette forme de répétitives ne
seront pas exécutées si la condition est fausse au départ
19
Joan S. Morales - Introduction à l'algo. et la programmation 20
Morphogramme de la répétitive
20
Condition
V
Initialisation de la variable de contrôle
Modification de la variable de contrôle
Traitement
F
Joan S. Morales - Introduction à l'algo. et la programmation 21
Boucle à compteurconst int Min = 20;const int Max = 30;int Compteur = Min;while (Compteur <= Max){ cout << Compteur; Compteur = Compteur + 1;}
Boucle conditionnelleconst int Fin = 0;int Nombre;cin >> Nombre;while (Nombre != Fin){ cout << Nombre << endl; cin >> Nombre;}
21
Préparation Exercice 3.14
Écrire un programme qui demande à l’utilisateur un nombre entier entre 1 et 100 et qui trouve si ce nombre est premier ou non. Les nombres premiers inférieurs à 100 sont 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89 et 97.
Joan S. Morales - Introduction à l'algo. et la programmation 22
Préparation Exercice 3.14 (suite)
Lire NombrePremier = vraiCompteur = 2Tant que Compteur <= Nombre -1{ Si Nombre est divisible par Compteur sans reste
{ Premier = faux
}}
Joan S. Morales - Introduction à l'algo. et la programmation 23
Le développement graduel(Exercice 3.15)Écrire un programme qui demande un
nombre entre 1 et 40 et qui affiche un motif. Par exemple, voici les motifs avec N=10:
ooooooooooooooooooooooooooooooooooooooooooooooooooooooo
Joan S. Morales - Introduction à l'algo. et la
programmation 24
Le développement graduel(suite)
Lire NombreLigne = 1Tant que Ligne <= Nombre Afficher_une_ligne
Ligne = Ligne + 1
Afficher_une_ligne:Colonne = 1Tant que Colonne <= Ligne Afficher un “o”
Colonne = Colonne +1Changer de ligne
Joan S. Morales - Introduction à l'algo. et la programmation 25
La variante do … whileOn utilise une boucle do...while lorsqu’on désire
une répétitive dont le bloc d’instructions doit nécessairement s’exécuter au moins une fois.Initialisation de la VCdo{ Traitement Modification de la VC}while(condition);
Joan S. Morales - Introduction à l'algo. et la programmation 26
Notez la présence du ;
Morphogramme d’un do…while
Joan S. Morales - Introduction à l'algo. et la programmation 27
Condition
V
F
Traitement
Initialisation de la VC
Modification de la VC
Exemple d’un do…while en C++Le menu
const int Quitter = 0;int Choix;do{ cout << ″Menu...″ << endl;
cin >> Choix;}while (Choix!=Quitter);
Joan S. Morales - Introduction à l'algo. et la programmation 28
La variante forfor (initialisation de la VC ; condition ; modification de la VC){ // Traitement}
Joan S. Morales - Introduction à l'algo. et la programmation 29
Exemple d’un while en C++
Cpt = Min;while (Cpt <= Max){ cout << Cpt << endl; ++Cpt;}
Exemple d’un for en C++for (Cpt = Min; Cpt <= Max; ++Cpt){
cout << Cpt << endl;}
Joan S. Morales - Introduction à l'algo. et la programmation 30
Autre exemple d’un for…
Joan S. Morales - Introduction à l'algo. et la programmation 31
Vieille façon de faire un cout
<< ...
Opérateurs arithmétiques d’affectationOpérate
urExemple Équivalent
+= Nombre += 1 ; Nombre = Nombre + 1;-= Nombre -= 1 ; Nombre = Nombre – 1;*= Nombre *= 2 ; Nombre = Nombre * 2;/= Nombre /= 2 ; Nombre = Nombre / 2;%= Nombre %= 2 ; Nombre = Nombre % 2;
Joan S. Morales - Introduction à l'algo. et la programmation 32
Opérateur
Exemple Équivalent
++ ++Nombre ; Nombre = Nombre + 1;-- --Nombre ; Nombre = Nombre – 1;
Opérateurs d’incrémentation
C++
Exemple d’utilisation en C++const int Min = 20;const int Max = 30;int Compteur; Compteur = Min;while (Compteur <= Max){ cout << Compteur << endl; ++Compteur; // ou Compteur += 1}
Joan S. Morales - Introduction à l'algo. et la programmation 33
Tous (presque) les opérateurs et leurs priorités
1
(x)
x++
x--
2
+x-x!x++x
--x
3x * yx / yx % y
4x + yx - y
Joan S. Morales - Introduction à l'algo. et la programmation 34
6
x < y
x > yx <= yx >= y
7x == yx != y
8 &&
9 ||
10
x = yx += yx -= yx *= yx /= yx %= y