TD N°2
TD N°2
TD N°2
contrôle conditionnelles et
alternatives
Exercice 1 : Quelques expressions booléennes
Donner la valeur des expressions suivantes :
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
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