Correction des exercices TCT_Chap9_Langage_Pascal avec remarques
Exercice 4 : Algorithme Programme Pascal
Algorithme Prix_Photocopies;
Variable NC : Entier;
Variable Prix : Réel;
Début
Ecrire('Veuillez saisir le nombre de copies que vous avez fait : ');
Lire ( NC) ;
Si NC <= 10 Alors
Prix NC * 0.30 ; Sinon
Si NC <= 30 Alors
Prix (10 * 0.30 ) + (NC – 10 ) * 0.25;
Sinon
Prix ( 10 * 0.30) + ( 20 * 0.25) + ( NC – 30) * 0.20;
Fin si Fin si
Ecrire('Le prix à payer est : ‘ , Prix , 'DHS');
Fin
Program Prix_Photocopies;
Uses WinCrt;
Var NC : Integer;
Prix : Real;
Begin
Write ('Veuillez saisir le nombre de copies que vous avez fait : ');
Readln ( NC) ; If NC <= 10 Then
Prix := NC * 0.30 Else
If NC <= 30 Then
Prix := (10 * 0.30 ) + (NC – 10 ) * 0.25 Else
Prix := ( 10 * 0.30) + ( 20 * 0.25) + ( NC – 30) * 0.20;
Writeln ('Le prix à payer est : ‘ , Prix :5 :2 , 'DHS');
End.
Exercice 3 : Algorithme équation ax+b=0 Programme Pascal
Algorithme équation1d;
Variable a,x,b : Réel;
Début
Ecrire (‘‘Résolution de l’équation ax+b=0 ‘’);
Ecrire(‘ Saisir la valeur de a : ');
Lire(a) ;
Ecrire(‘ Saisir la valeur de b : ');
Lire(b);
Si a = 0 Alors Si b = 0 Alors
Ecrire ( ‘ S = IR ‘);
Sinon
Ecrire ( ‘ S = ‘);
Fin si sinon
x -b/a;
Ecrire (‘ Une seule solution : ‘ , x);
Fin Si Fin
Program Equation1d;
Uses WinCrt;
Var a, x, b : Real;
Begin
Writeln (‘Résolution de l’’équation ax+b=0 ‘);
Write (‘ Saisir la valeur de a : ');
Readln (a) ;
Write (‘ Saisir la valeur de b : ');
Readln (b);
If a = 0 Then If b = 0 Then
Writeln ( ‘ S = IR ‘) Else
Writeln ( ‘ S ={} ‘) Else
Begin
x := -b/a;
Writeln (‘ Une seule solution :
‘ , x :6 :2);
End ; End.
Exercice 5 : Algorithme capitale des pays Programme Pascal
Algorithme Capitale;
Variable Pays : Entier;
Capitale : Chaine ; Début
Ecrire('Voici les 5 pays du Grand Maghreb');
Ecrire
(‘**********************************’) ; Ecrire('1 . Algérie');
Ecrire('2 . Maroc');
Ecrire('3 . Mauritanie');
Ecrire('4 . Tunisie');
Ecrire('5 . Libye');
Ecrire (‘---‘) ;
Ecrire('Choisissez un pays pour voir sa capitale : ');
Lire (Pays);
Selon que Pays Vaut
1 : Capitale ‘Alger';
2 : Capitale ‘Rabat';
3 : Capitale ‘Nouakchout';
4 : Capitale ‘Tunis';
5 : Capitale ‘Tripoli';
Autrement : Ecrire ('Vous devez choisir entre 1 et 5 !');
Fin Selon
Si Capitale<>’’ Alors
Ecrire (‘La capitale du pays choisi : ‘ , Capitale ) ;
Finsi Fin
Program Capitale_Grand_Maghreb;
Uses WinCrt;
Var Pays : Integer;
Capitale : String ; Begin
Writeln ('Voici les 5 pays du Grand Maghreb');
Writeln
(‘********************************’) ; Writeln ('1 . Maroc');
Writeln ('2 . Algérie’);
Writeln ('3 . Mauritanie');
Writeln ('4 . Tunisie');
Writeln ('5 . Libye');
Writeln (‘---‘) ;
Write ('Choisissez un numéro pour voir la capitale du pays: ');
Readln (Pays);
Case Pays Of
1 : Capitale := ‘Rabat’;
2 : Capitale := ‘Alger';
3 : Capitale := ‘Nouakchout';
4 : Capitale := ‘Tunis';
5 : Capitale := ‘Tripoli' Else
Writeln ('Vous devez choisir entre 1 et 5 !');
End ;
If Capitale <> ’’ Then
Writeln (‘La capitale du pays choisi :
‘ , Capitale ) ; End.
Exercice 2 :Programme Pascal Ou
Program Concours;
Uses WinCrt;
Var Note : real ; Begin
Write ('Entrez la moyenne d’’élève: ') ; Readln (Note) ;
If Note >= 14 Then
Writeln (‘Elève accepté au concours') Else
Writeln (‘Elève non accepté au concours') ;
End.
Program Concours;
Uses WinCrt;
Var Note : real ; Begin
Write ('Entrez la moyenne d’’élève: ') ; Readln (Note) ;
If Note >= 14 Then Begin
Writeln (‘Elève accepté au concours') ; End
Else Begin
Writeln (‘Elève non accepté au concours') ;
End ; End.
{Le bloc Begin/End n’est pas nécessaire ici car le bloc ne contient qu’une seule instruction. Il devient obligatoire pour plus d’une instruction ! }
Exercice 6 : Equation ax² + bx +c = 0 Programme Pascal Program Equation2d ;
Uses WinCrt;
Var a, b, c, delta, s1, s2 : real;
Begin
Writeln (‘*** Résolution de l’’équation ax²+bx+c=0 ***’) ; Write (‘Donnez la valeur de a : ‘);
Readln (a);
Write (‘Donnez la valeur de b : ‘);
Readln (b);
Write (‘Donnez la valeur de c : ‘);
Readln (c);
If a = 0 Then Begin
Writeln (‘Ce n’’est pas une équation du second degré !! ‘) ; If b = 0 Then
If c = 0 Then
Writeln (‘ S = IR ‘)
Else
Writeln (‘Pas de solution dans IR ‘) Else
Begin
S1 := - c / b ;
Writeln (‘Une seule solution: ‘, S1 :5 :2 );
End End Else Begin
Delta := Sqr( b) - 4*a*c ; If delta > 0 Then
Begin
S1 := (-b + Sqrt(delta)) / (2*a) ; S2 := (-b - Sqrt(delta)) / (2*a) ;
Writeln (’Deux solutions : ‘ , S1 :5 :2 , ’ et : ‘ , S2 :5 :2 );
End
Else
If delta = 0 Then
Begin
S1 := -b /( 2*a) ;
Writeln ( ‘Une seule solution: ‘ , S1 :5 :2 ) ;
End
Else
Writeln ( ‘Pas de solution dans IR ! ‘ );
End ; End.
Remarques:
Le point virgule (;) à la fin de l’instruction n’est pas accepté avant Else .
Dans l’instruction [Writeln (‘Une seule solution: ‘, S1 :5 :2 );] le résultat est affiché sur 5 caractères dont 2 après la virgule (ex 12.25) au lieu de l’écriture scientifique (0.12250000E02)
Le bloc Begin/End à l’intérieur du corps du programme devient obligatoire pour un bloc de plus d’une instruction comme dans les exercices ci-dessus!
Faire attention aux erreurs suivantes :
Erreur à ne pas commettre Correction de l’erreur Remarque
Readin Readln ln pour Ligne
Readln (‘Pays’) ; Readln (Pays) ;
If a := 0 If a = 0 Expression boolienne a=0
Prix := NC*0.30 ; Else
Prix := NC*0.30 Else
Pas de ; avant Else
≥ ≤ ≠ >= <= <>
√D Sqrt(D) Racine carrée
B² Sqr(B) Carré
S1 :=-b + √D/2a ; S1 :=(-b + Sqrt(D))/(2*a) ; Faire attention aux parenthèses et aux opérateurs !!!