Vous êtes sur la page 1sur 4

cole Prparatoire aux Sciences et Techniques, Annaba

Dpartement de mathmatiques et dinformatique

Module : Informatique 2

Srie de TD no 2 : Instructions conditionnelles


Rappel sur les instructions conditionnelles
1. En C++, quelle est la diffrence entre = et == ?
2. Donnez la syntaxe dune instruction if en C++.
3. Donnez la syntaxe dune instruction if-else en C++.
4. Donnez la syntaxe dune instruction switch-case.
5. Quelles valeurs peuvent tre affectes une variable de type boolean ?

Exercice 1
Construire une expression logique pour reprsenter chacune des conditions suivantes :
1. score est suprieure ou gale 80 mais infrieure 90.
2. answer est gale 'N' ou 'n'.
3. n est paire mais diffrente de 8.
4. ch est une lettre majuscule.
5. n est entre 0 et 7 mais diffrent de 3.
6. n est entre 0 et 7 mais nest pas un nombre pair.
7. ch est une lettre majuscule ou minuscule.

Exercice 2
crire un programme qui demande lutilisateur dentrer deux valeurs entires, et affiche la valeur la plus petite.

Exercice 3
Rcrire ces trois fragments de programmes sans utiliser le if et le else.
1
2
3
if (i>0)
if (i == 0)
if (i == j)
cout << "a";
j = 0;
b = true;
else
else
else
cout << "a";
j = i;
b = false;

Exercice 4
Deux vecteurs ~a( x a , y a ) et ~b( xb , yb ) sont parallles si

( x a yb ) (y a xb ) = 0
crire un programme qui teste si deux vecteurs ~a( x a , y a ) et ~b( xb , yb ) sont parallles en demandant lutilisateur le valeur de x a , y a , xb et yb . Le programme affiche parallles si les
deux vecteurs sont parallles, sinon il affiche non parallles.
1

EPST Annaba

Module : Informatique 2

Srie de TD no 2

Exercice 5
Soit les deux fragments de programme suivant :

1. if (n > 2) { if (n < 6) cout << "OK"; } else cout << "NG";


2. if (n > 2) { if (n < 6) cout << "OK"; else cout << "NG"; }
1. Rcrire ces deux fragments de programme pour quils soient plus lisibles.
2. Quelles diffrence existe entre ces deux fragments de programme ?
3. Illustrer cette diffrence par des exemples.

Exercice 6
Soit le programme suivant :

#include<iostream.h>
int main() {
int i = 0;
if (i=0)
cout << "Nul";
else
cout << "Non nul";
}
1. Quaffiche ce programme ? et pourquoi ?
2. Que faut-il changer pour corriger ce programme ?

Exercice 7
crire un programme qui demande la moyenne gnrale de lutilisateur et affiche :
Ajourn si la moyenne est strictement infrieure 10.
Passable si la moyenne est suprieure ou gale 10 et infrieure strictement 12.
Bien si la moyenne est suprieure ou gale 12 et infrieure strictement 15.
Trs bien si la moyenne est suprieure ou gale 15 et infrieure 18.
Excellent si la moyenne est superieure ou gale 18 et infrieure ou gale 20.

Exercice 8
Soit le programme en suivant :

#include <iostream.h>
int main() {
int n ;
cin >> n ;
switch (n) {
case 0 : cout << "Nul " ;
case 1 :
case 2 : cout << "Petit " ; break ;
case 3 :
2

EPST Annaba

}
}

Module : Informatique 2

Srie de TD no 2

case 4 :
case 5 : cout << "Moyen " ;
default : cout << "Grand " ;

Quaffiche ce programme lorsquon lui fournit chacune des valeurs suivantes :


1. 0
2. 1
3. 4
4. 10
5. -5

Exercice 9
En utilisant un switch-case, crire un programme qui lit un entier qui reprsente un mois
(1 pour janvier, 2 pour fvrier, 3 pour mars, etc.) et qui affiche le nombre de jours de ce mois.

Exercice 10
Amliorer la lisibilit de ce programme en remplaant le switch-case par if-else

#include<iostream.h>
int main() {
int n;
cin >> n;
switch (n) {
case 0 : cout << "matin;break;
case 1 : cout << "matin;break;
case 3 : cout << "matin;break;
case 4 : cout << "matin;break;
case 5 : cout << "matin;break;
case 6 : cout << "matin;break;
case 7 : cout << "matin;break;
case 8 : cout << "matin;break;
case 9 : cout << "matin;break;
case 10 : cout << "matin;break;
case 11 : cout << "matin;break;
case 12 : cout << "Aprs-midi;break;
case 13 : cout << "Aprs-midi;break;
case 14 : cout << "Aprs-midi;break;
case 15 : cout << "Aprs-midi;break;
case 16 : cout << "Aprs-midi;break;
case 17 : cout << "Aprs-midi;break;
case 18 : cout << "Aprs-midi;break;
case 19 : cout << "Soir;break;
case 20 : cout << "Soir;break;
case 21 : cout << "Soir";break;
3

EPST Annaba

Module : Informatique 2

Srie de TD no 2

case 22 : cout << "Soir";break;


case 23 : cout << "Soir";break;
default : cout << "heure invalide;

Problme 1
la caisse nationale des assurances sociales, le montant de la prime de scolarit verse
aux salaris est calcul selon la rgle suivante :
1. Pour les salaris dont le revenu est suprieur 15000 DA :
400 DA par enfant.
2. Pour les salaris dont le revenu est infrieur ou gale 15000 DA :
Du premier au cinquime enfant : 800 DA par enfant.
compter du sixime enfant : 400 DA par enfant.
crire un programme qui calcule et affiche la prime de scolarit dun salari quelconque.
Exemple
Pour un salari ayant 6 enfants dont le salaire est de 16000 DA, la prime de scolarit
est gale 400 6 = 2400DA.
Pour un salari ayant 4 enfants dont le salaire est de 13000 DA, la prime de scolarit
est gale 800 4 = 3200DA.
Pour un salari ayant 8 enfants dont le salaire est de 14000 DA, la prime de scolarit
est gale 800 5 + 400 3 = 5200DA.

Problme 2
En mathmatique, une quation du second degr est une quation polynomiale de degr
2 de la forme : ax2 + bx + c = 0. Le discriminant est calcul comme suit : = b2 4ac. La
solution dune equation du second degr dpend du signe de son discriminant :
Si < 0, lquation nadmet pas de solution dans lensemble des nombres rels.
b
Si = 0, lquation admet une seule double solution x1 = x2 = 2a

Si > 0, lequation admet deux solutions x1 = b


et x2 = b+
.
2a
2a
crire un programme en C++ qui permet de rsoudre une quation du second degr de la
forme ax2 + bx + c = 0. Le programme demande lutilisateur dentrer la valeur de a, de b
et de c et affiche la valeur des solutions.

Remarque La fonction prdfnie sqrt de la librairie math.h peut tre utilise

Une version lctronique de ce document est disponible sur : http://skebir.developpez.com/epst

Vous aimerez peut-être aussi