Académique Documents
Professionnel Documents
Culture Documents
Module : Informatique 2
if (condition) {
action
}
3. Donnez la syntaxe dune instruction if-else en C++.
if (condition) {
action
} else {
action2
}
4. Donnez la syntaxe dune instruction switch-case.
switch (variable)
case constante1
case constante2
case constante3
case constante4
case constante5
...
default :
}
{
:
:
:
:
:
true ou false.
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.
1
EPST Annaba
Module : Informatique 2
Corrig de la srie de TD no 2
1.
2.
3.
4.
5.
6.
7.
Exercice 2
crire un programme qui demande lutilisateur dentrer deux valeurs entires, et affiche la valeur la plus petite.
#include<iostream.h>
int main() {
int i,j;
cin >> i;
cin >> j;
if (i<j)
cout << i;
else
cout << j;
}
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;
Solution
Exercice 4
Deux vecteurs ~a( x a , y a ) et ~b( xb , yb ) sont parallles si
( x a yb ) (y a xb ) = 0
2
EPST Annaba
Module : Informatique 2
Corrig de la srie de TD no 2
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.
#include<iostream.h>
int main() {
int xa,ya,xb,yb;
cin >> xa;
cin >> ya;
cin >> xb;
cin >> yb;
if ((xa*yb) - (ya*xb==0))
cout << "les vecteurs a et b sont parallles";
else
cout << "les vecteurs a et b ne sont pas parallles";
}
Exercice 5
Soit les deux fragments de programme suivant :
1.
if (n > 2) {
if (n < 6)
cout << "OK";
}
else
cout << "NG";
if (n > 2) {
if (n < 6)
cout << "OK";
else
cout << "NG";
}
2. Dans le premier fragment le else appartient au premier if
Alors que dans le second fragment le else appartient au deuxime if
3.
|------------------------------------------|
|
| fragment 1 | fragment 2 |
|------------------------------------------|
3
EPST Annaba
Module : Informatique 2
Corrig de la srie de TD no 2
| n <= 2
| NG
|
|
|------------------------------------------|
| n > 2 && n < 6 | OK
| OK
|
|------------------------------------------|
| n >= 6
|
| NG
|
|------------------------------------------|
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.
#include<iostream.h>
int main() {
double moy;
cin >> moy;
if (moy<0 || moy > 20)
cout << "moyenne invalide";
else if (moy<10)
cout << "Ajourne";
else if (moy<12)
cout << "Passable";
else if (moy<15)
cout << "Bien";
4
EPST Annaba
Module : Informatique 2
Corrig de la srie de TD no 2
else if (moy<18)
cout << "Trs bien";
else
cout << "Excellent";
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 :
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
1.
2.
3.
4.
5.
Nul Petit
Petit
Moyen Grand
Grand
Grand
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.
#include<iostream.h>
int main() {
int n;
cin >> n;
5
EPST Annaba
Module : Informatique 2
Corrig de la srie de TD no 2
switch (n) {
case 2 : cout << nombre de jours = 28;break;
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 : cout << nombre de jours = 31;break;
case 4 :
case 6 :
case 9 :
case 11 : cout << nombre de jours = 30;break;
default : cout << mois erron;
}
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;
case 22 : cout << "Soir";break;
case 23 : cout << "Soir";break;
6
EPST Annaba
Module : Informatique 2
Corrig de la srie de TD no 2
#include<iostream.h>
int main() {
int heure;
cin >> heure;
if (heure<0 || heure>23)
cout << "heure invalide";
else if (heure <= 11)
cout << "matin";
else if (heure <= 18)
cout << "Aprs-midi";
else
cout << "Soir";
}
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.
Solution
#include<iostream>
EPST Annaba
Module : Informatique 2
Corrig de la srie de TD no 2
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
int main() {
int a;
int b;
cin >> a;
cin >> b;
double delta = b*b - 4*a*c;
if (delta<0)
cout << "l'quation n'admet pas de solution";
else if (delta==0) {
double x = -b/(2.0*a);
cout << "l'quation admet une solution double x = " << x;
} else {
double x1 = (-b-sqrt(delta))/(2.0*a);
double x2 = (-b+sqrt(delta))/(2.0*a);
cout << l'quation admet deux solutions x1 = "<< x1 << " x2 = " << x2;
}
}