Vous êtes sur la page 1sur 14

Td N°2 : les structures de

contrôle conditionnelles et
alternatives
Exercice 1 : Quelques expressions booléennes
Donner la valeur des expressions suivantes :

VRAI ET FAUX OU VRAI F ou V = V


(2 < 3) ET (4 > 5) V ET F = F
(2+6 = 10) OU (8/2 > 3) F ou V = V
Exercice 2 – Encore des expressions booléennes
Soient x, y et z trois variables de type entier. Déterminer les expressions booléenne correspondantes aux situations
suivantes :
1. x et y sont toutes deux strictement supérieures a 3
x > 3 ET y > 3 y<x<z
OU
2. x, y et z sont identiques z<x<y
x = y ET y = z/ x=y ET x=z/ ..
3. la valeur de x est comprise entre les valeurs de y et z
x > y ET x < z OU x > z ET x < y
4. parmi les valeurs de x, y et z, deux valeurs au moins sont identiques
x=y OU y=z OU x=z
5. parmi les valeurs de x, y et z, deux et seulement deux valeurs sont identiques
x=y ET x ≠ z OU y=z ET y ≠ x OU x=z ET x ≠ y
Exercice 3 : Produit
Ecrire un algorithme qui demande deux nombres à l'utilisateur et qui indique si le produit de ces deux nombres est négatif ou
positif ou nul.
Attention : on impose de ne pas calculer le produit.

ALGORITHME Produit
VARIABLE : x, y: réels
DEBUT
Ecrire ( " Donner le premier nombre: " ) ;
Lire (x) ;
Ecrire ( " Donner le deuxiéme nombre: " ) ;
Lire (y) ;
SI ( (x > 0) ET (y >0)) OU (x < 0 ET y < 0) ALORS
Ecrire (" le produit est positif " );
SINON SI (X=0) OU (Y=0) ALORS
Ecrire (" le produit est nul " );
SINON
Ecrire (" le produit est négatif " );
FinSi
FinSI
FIN
Exercice 4 : mois de l’année
Ecrire un algorithme qui demande un numéro de mois à l’utilisateur (1 → 12) et qui indique en retour son nom et le nombre
de jours dans ce mois. (Le cas des années bissextiles ne sera pas traité)

ALGORITHME quel_mois
VARIABLE : mois,y : entier
DEBUT
Ecrire ( " Donner un numéro de mois et l’année : " ) ;
Lire (mois, y);
CAS mois
1 : Ecrire (" Janvier, 31 jours " ) ;
2 : Ecrire ( " Février, 28 ou 29 jours " ) ;
3 : Ecrire ( "Mars, 31 jours " ) ;
4: Ecrire (" Avril, 30 jours " ) ;
5: Ecrire ( "Mai, 31 jours " ) ;
6: Ecrire ( "Juin, 30 jours " );
…...
12 : Ecrire ( "Décembre, 31 jours " ) ;
SINON
Ecrire ( " numéro de mois incorrect ") ;
FINCAS
FIN
Exercice 5 : les impôts
Les habitants d’une ville paient l’impôt selon les règles suivantes :
- les hommes de plus de 20 ans paient l’impôt
- les femmes paient l’impôt si elles ont entre 18 et 35 ans
- les autres ne paient pas d’impôt
Ecrire un algorithme qui demande l’âge et le sexe d’un habitant et affiche si celui-ci est imposable.

ALGORITHME Imposable
VARIABLE: sexe : caractère
age : entier
DEBUT
Ecrire ("Entrer le sexe (M/F) : ")
Lire(sexe);
Ecrire ("Entrer l’âge : ") ;
Lire(age);
SI (sexe = ‘M’OU age > 20 ) OU (sexe = ‘F’ET (age > =18 ET age <= 35) )ALORS
Ecrire("Imposable");
SINON
Ecrire("Non Imposable");
FinSi
FIN
Exercice 6 : équation du second degré.
Ecrire un algorithme permettant de résoudre une équation du second degré. ax2+bx+c=0
ALGORITHME Equation
VARIABLE a, b, c, delta, x1, x2 : réel
DEBUT
Ecrire (" donner la valeur de a ") ;Lire (a);
Ecrire (" donner la valeur de b ") ;Lire (b);
Ecrire (" donner la valeur de c ") ;Lire (c);
Si(a <>0) ALORS
delta b*b+4*a*c;
Si delta > 0 ALORS
X1 -b-sqrt(delta)/(2*a); X2 -b+sqrt(delta)/(2*a);
Ecrire (" les solutions sont" ,x1, " et " ,x2);
Sinon Si delta =0 ALORS Ecrire (" la solution est :" ,-b/(2a));
Sinon Ecrire (" une solution complexe :");
FinSI
FinSi
Sinon Si ( b<>0) ALORS Ecrire ("solution est ", -c/b);
Sinon Si Ecrire (" Pas de solution");
FinSI
FinSi
FIN
Exercice 7 : ordre de trois nombres
Ecrire un algorithme qui lit trois valeurs entières (A, B et C) et les afficher dans l'ordre croissant

Au total on peut avoir 6 cas :


A<B<C
A<C<B
C<A<B
B<A<C
C<B<A
B<C<A
ALGORITHME Equation
VARIABLE A,B,C: entier
DEBUT
Ecrire (" donner A, B, et C : ") ;Lire (A,B,C);
Si (A<B) ALORS
Si (B<C) ALORS
Ecrire (" A<B<C ") ;
Sinon Si (A<C) ALORS // les deux inférieur à B reste à vérifier A ET C
Ecrire (" A<C<B");
SINON Ecrire (" C<A<B");
FinSi
FinSi
Sinon Si (A<C) ALORS
Ecrire (" B<A<C");
Sinon Si (C<B)ALORS // les deux inférieur à A reste à vérifier B ET C
Ecrire (" C<B<A");
Sinon Ecrire (" B<C<A");
FinSi
FinSi
FinSi
FIN
Exercice 8 : nature du triangle
Etant données trois longueurs réelles a, b et c, concevoir un algorithme qui détermine si a, b et c peuvent être les cotes d’un
triangle ; et si le triangle en question est un triangle rectangle, un triangle rectangle isocèle ou un triangle autre.
On suppose que c est le plus grand cote du triangle.
ALGORITHME Equation
VARIABLE a, b, c, : réel
DEBUT
Ecrire (" donner les longueurs a, b, et c ") ; Lire (a, b, c);
Si (a+b <c) Alors
Ecrire (" a, b et c ne peuvent pas être les cotes d’un triangle ");
Sinon Si (a*a+b*b=c*c) Alors
Si (a=b) ou (a=c) ou (b=c) Alors
Ecrire (" votre triangle est un triangle rectangle et isocèle" );
SINON Ecrire (" votre triangle est un triangle rectangle");
FinSi
Sinon SI (a=b ou a=c ou b=c ) Alors
Ecrire (" votre triangle est un triangle isocèle ");
Sinon SI ( a=b et a=c et b=c) Alors
Ecrire (" votre triangle est un triangle équilatérale");
Sinon (" votre triangle est un triangle quelque");
FinSi
FINSI
FINSI
FINSI
FIN
Exercice 9 : Next minute
Écrire un algorithme qui demande de saisir une heure (heures et minutes) et qui affiche l'heure qu'il sera une minute plus tard.
Exemple 1 : Si l'utilisateur saisit 15 puis 22, l'algorithme doit écrire « Dans une minute, il sera 15 heure(s) et 23 minute(s) ».
Exemple 2 : Si l'utilisateur saisit 23 puis 59, l'algorithme doit écrire « Dans une minute, il sera 00 heure(s) et 00 minute(s) ».
ALGORITHME heure
VARIABLE H, M : entier
DÉBUT
Ecrire (" donner l’heure "); lire (H);
Ecrire (" donner les minutes "); lire(M);
Si (M >= 60 OU M<0 ET H<0 OU H >= 24 ) Alors
Ecrire (" INVALIDE");
Sinon
M← M + 1;
SI (M = 60) Alors
M ← 0;
H← H + 1;
Si H = 24 Alors
H ← 0;
FinSi
FinSi
FinSi
Ecrire (" Dans une minute, il sera ",h, "heure(s) et ",m, "minute(s)" );
FIN
Exercice 10 : durée de vol
Ecrire un algorithme qui donne la durée de vol en heure minute connaissant l'heure de départ et l'heure d'arrivée.
a. On considère que le départ et l'arrivé ont lieu le même jour

ALGORITHME DuréeVol
VARIABLE h_d, h_a, m_d,m_a, h, m : entier
DÉBUT Départ: 8h 20
Ecrire (" entrer horaire de départ: ");Lire (h_d, m_d) ; Arrivée: 10h 30
Ecrire (" entrer horaire d’arrivée"); Lire (h_a, m_a); Durée : 2h10
Si (m_a > m_d) ALORS
h ← h_a - h_d;
m ← m_a- m_d;
Sinon Départ: 8h 30
h ← h_a - h_d -1; Arrivée: 10h 20
m ← m_a- m_d + 60 ; Durée : 1h50
FINSI
ECRIRE (" la durée de vol est : ", hd , ' : ', md);
FIN
b. On suppose que la durée de vol est inférieure à 24 heures mais peut avoir lieu le lendemain

ALGORITHME DuréeVol
VARIABLE h_d, h_a, m_d,m_a, h, m : entier
DÉBUT
Ecrire (" entrer horaire de départ: ");Lire (h_d, m_d) ;
Ecrire (" entrer horaire d’arrivée"); Lire (h_a, m_a); Départ: 20h 20
Si (h_d > h_a) Alors Arrivée: 10h 30
//les deux cas du 1er question Durée : 14h10
Sinon Si (m_a > m_d) ALORS
h ← h_a - h_d +24;
m ← m_a- m_d; Départ: 20h 30
Sinon Arrivée: 10h 20
h ← h_a - h_d +24-1; Durée : 13h50
m ← m_a- m_d +60;
FinSi
FinSi
ECRIRE (" la durée de vol est : ", hd , ' : ', md);
FIN
Exercice 11 : prix d’abonnement
Une librairie décide de faire des remises sur les prix d’abonnement à une revue scientifique selon le menu suivant :
1) Ancient étudiant : -15%
2) Etudiant : -20%
3) Nouvel abonné :-00%
4) Etranger : +25%
Le calcul du prix d’abonnement est fait en fonction du tarif normal d’abonnement (TN) et de la qualité de l’abonné (Q).
(Une seule qualité est acceptée par abonné)
Ecrire un algorithme permettant de calculer le prix final à payer
ALGORITHME Prix_abonnement
VARIABLE TN,Q,P: entier On peut utiliser
DÉBUT SI…Alors
Ecrire (" affichage du menu : "); Avec Q entier ou
Ecrire (" entrer le tarif normal : ");Lire (TN) ; même chaine de
Ecrire (" entrer la qualité de l’abonné "); Lire (Q); caractère
CAS Q
1: p ← p- p*0,15;
2: p ← p- p*0,2;
3: p ← p-;
4: p ← p+ p*0,25;
Sinon Ecrire (‘qualité doit être entre 1 et 4 ’);
Fincas
Ecrire (" le prix final à payer est: ", p);
FIN

Vous aimerez peut-être aussi