____________________________________________________________________________________________________________
 ____________________________________________________________________________________________________________
Exercice 1 :
Ecrire un algorithme qui calcule
la valeur absolue d’un nombre réel .
|x|= x  si   
x>0
|x|= -x  si  
x<0
____________________________________________________________________________________________________________
Solution :
Algorithme  valeur_absolue;
Var
      X :réels;
Début
                Ecrire(‘entrer  un nombre : ‘) ;
                Lire(X) ;
                Si  X>0 alors
        Ecrire(‘la valeur absolue de X=’,X);
    Sinon
         Ecrire(‘la valeur absolue de X=’,X);
    Finsi
fin
____________________________________________________________________________________________________________
Exercice 2 :
Ecrire un algorithme qui permet
d’afficher la valeur absolue de la différence entre deux nombres réels saisis
au clavier.
|x-y|= x –y  si   
x>y
|x-y|= -(x –y)  si  
x<y
Solution :
Algorithme  valeur_absolue;
Var
      x,y :réels;
Début
                Ecrire(‘entrer  x : ‘) ;
                Lire(x) ;
                Ecrire(‘entrer  y : ‘) ;
                Lire(y) ;
    Si  x>y  alors
        Ecrire(‘la valeur absolue de
x-y=’,x-y);
    Sinon
         Ecrire(‘la valeur absolue de x-y
=’,y-x);
    Finsi
fin
____________________________________________________________________________________________________________
Exercice 3 :
On désire écrire un algorithme
qui permet d’afficher le jour correspondant à un chiffre allant de 1 à 7, entré
au clavier.
Résoudre ce problème avec deux
méthodes :  (si imbriquée , primitive
cas).
____________________________________________________________________________________________________________
Solution 1 :
Algorithme  affichage_jour;
Var
      jour : entier;
Début
                Ecrire(‘entrer  un chiffre de 1 a 7 : ‘) ;
                Lire(jour) ;
Si  jour=1 alors
        Ecrire(‘ lundi ’);
Sinon Si  jour=2 
alors
             Ecrire(‘ mardi ’);
           Sinon Si  jour=3 
alors
                        Ecrire(‘ mercredi ’);
                 Sinon Si  jour=4 
alors
                               Ecrire(‘ jeudi
’);
                         Sinon Si  jour=5 
alors
                                       
Ecrire(‘vendredi’);
                                   Sinon Si  jour=6 
alors
                                                
Ecrire(‘samedi’);
                                              
Sinon  Si  jour=2 
alors
                                                                 
Ecrire(‘dimanche’);
                                                          
Sinon                                                                                                         
                                                                                                                                                                                       
                                                                
Ecrire(‘ce n’est pas un jour de semaine’);
                                                           
Finsi
                                              
Finsi 
                                     Finsi
                          Finsi
                  Finsi
Finsi
      Finsi
fin
____________________________________________________________________________________________________________
Solution 2 :
Algorithme  affichage_jour;
Var
      jour :entier;
Début
                Ecrire(‘entrer  un chiffre de 1 a 7 : ‘) ;
                Lire(jour) ;
                Cas  jour
               1 : Ecrire(‘LUNDI ‘) ;
               2 : Ecrire(‘MARDI ‘) ;
               3 : Ecrire(‘MERCREDI ‘) ;
                4 : Ecrire(‘JEUDI ‘) ;
                5 : Ecrire(‘VENDREDI ‘) ;
                6 : Ecrire(‘SAMEDI ‘) ;
                7 : Ecrire(‘DIMANCHE ‘) ;
             Sinon
                         Ecrire(‘ il faut
choisir un nombre entre 1 et 7 !!!! ‘) ;
FinCas
fin
____________________________________________________________________________________________________________
Exercice 4 :
Ecrire un algorithme qui permet
de saisir deux nombres entiers x ,y et les afficher à l’écran dans l’ordre
croissant.
____________________________________________________________________________________________________________
Solution :
Algorithme  tri_deux_nombre;
Var
      x,y :réels;
Début
                Ecrire(‘entrer  x : ‘) ;
                Lire(x) ;
                Ecrire(‘entrer  y : ‘) ;
                Lire(y) ;
    Si 
x>y  alors
        Ecrire(y,’          ‘,x);
  
Sinon
  
      Ecrire(y,’         ‘,x);
  
Finsi
fin
____________________________________________________________________________________________________________
Exercice 5 :
Ecrire un algorithme qui teste si
une année est bissextile ou non.
N.B. Une année est bissextile si
elle est divisible par 4 et pas par 100 ou si elle est divisible par 400.
____________________________________________________________________________________________________________
Solution :
Algorithme  annne_bissextile;
Var
      annee :réels;
Début
                Ecrire(‘entrer  l’année : ‘) ;
                Lire(annee) ;
    Si 
((annee mod 4 =0 et annee mod 100 <> 0) ou annee mod 400 =0 )  alors
        Ecrire(‘l’année que vous avez entrer
est bissextile .’);
    Sinon
         Ecrire(‘l’année que vous avez entrer
n’ est pas  bissextile .’);
    Finsi
fin
____________________________________________________________________________________________________________
Exercice 6 :
Ecrire un algorithme permettant
de résoudre une équation de deuxième degré : 
ax²+bx+c=0 .
____________________________________________________________________________________________________________
Solution :
Algorithme  calcul_permutation;
Var
            A,b,c,d : réels ;
Début
                Ecrire(‘entrer le coefficient a
: ‘) ;
                Lire(a) ;
                Ecrire(‘entrer le
coefficient  b : ‘) ;
                Lire(b) ;
Ecrire(‘entrer le
coefficient  c : ‘) ;
                Lire(c) ;
                Si a=0 alors
                     Si b=0 alors
                            Si c=0 alors
                                  Ecrire(‘ la
solution est   : S = R’) ;
                               sinon
                                    Ecrire(‘ l’équation
n’a pas de solution ’) ;
                            Finsi
                     sinon
                           Ecrire(‘la solution
est   : S = ’,-c/b) ;
                     Finsi
                sinon
                     D<-- b*b-4+a*c ;
                      Si d=0 alors
                           Ecrire(‘la solution
est   : S = ’,-b/(2*a)) ;
                      Sinon si d>0 alors
                                       Ecrire(‘l’équation
a deux solution:  S1= ’,(-b- /(2*a) ,’
et  S2 = ‘,(-b+ /(2*a)) ;
                                   Sinon
                                        
Ecrire(‘l’équation n’a pas de solution dans R ’) ;
                                    Finsi
                        Finsi
               Finsi                                
fin
____________________________________________________________________________________________________________
Exercice 7 :
Une librairie décide de faire des
remises sur les prix d’abonnement à une revue scientifique selon le menu
suivant :
Ancien abonné : -15%
Etudiant              : -20%
Nouvel abonné : 00%
Etranger             : + 25%
Le calcul du prix d’abonnement de
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 à payer.
____________________________________________________________________________________________________________
Solution :
Algorithme  librairie;
Var
      Q : entier ;
      TN,TR,R,RAP :réels;
Début
                Ecrire(‘Entrer le tarif normal
: ‘) ;
                Lire(TN) ;
              Ecrire(‘--------------- MENU
-----------------------‘) ;
              Ecrire(‘----------Ancien
Abonné------------------ 1‘) ;
             
Ecrire(‘-----------------Etudiant------------------- 2‘) ;
Ecrire(‘-----------------Nouvel
abonné--------------- 3‘) ;
                Ecrire(‘-------------------Etranger----------------------
4‘) ;
               Ecrire(’Entrer la qualité de
l’abonné ? ‘’) ;
                Lire(Q) ;
                Cas Q
                               1 : TR
<--  -0.15 ;
                               2 : TR
<--  -0.20 ;
                               3 : TR
<--  -0.00 ;
                               4 : TR
<--  +0.25 ;
                Fincas
                Si (Q<1) ou (Q>4) alors
                      Ecrire(‘Erreur de choix’)
;
               Sinon
                           R <--  TN *TR ;
                           PAR <--  TN+R ;
                             Ecrire(‘Le prix à
payer est :’,PAP) ;
                Finsi
Fin
____________________________________________________________________________________________________________
Exercice 8 :
Ecrire un algorithme de
résolution.
On dispose de trois nombres réels
saisis au clavier.
Selon un choix effectué a partir
d’un menu affiché a l’ecran, on désire calculer la somme ou le produit ou la
moyenne ou chercher le minimum de ces trois nombres.
Le menu doit se présenter a
l’ecran de la manière suivante :
------------------ MENU
---------------------
1 --------------somme
----------------------
2---------------produit
----------------------
3---------------Moyenne
-------------------
4---------------Minimum
-------------------
5---------------Maximum
------------------
-------------------------------------------------
Entrez votre choix ?
____________________________________________________________________________________________________________
Solution :
Algorithme  calcul;
Var
        X,Y,Z,R:réels;
        Choix : caractère ;
Début
                Ecrire(‘Entrer le premier
nombre : ‘) ;
                Lire(X) ;
    Ecrire(‘Entrer le deuxième nombre : ‘) ;
                Lire(Y) ;
    Ecrire(‘Entrer le troisième nombre : ‘) ;
                Lire(Z) ;
                Ecrire(‘--------------- MENU
-----------------------‘) ;
                Ecrire(‘------------------Somme-------------------
1‘) ;
                Ecrire(‘-----------------
Produit-------------------- 2‘) ;
   
Ecrire(‘------------------Moyenne----------------- 3‘) ;
               
Ecrire(‘-----------------Minimum------------------ 4‘) ;
                Ecrire(‘-----------------Maximum------------------
5‘) ;
                Ecrire(’Entrer  votre choix ? ‘’) ;
                Lire(choix) ;
                Cas choix
                               1 : R
<--  X+Y+Z;
                               2 : R <--  X*Y*Z;
                               3 : R
<--  (X+Y+Z)/3;
                               4 :          Si 
X<Y   Alors
                                        R ß X ;
                                Sinon
                                   R
<--  Y ;
                                 Finsi
                                Si  Z<R 
Alors
                                    R
<--  Z ;
                                finsi
                           5 :        
Si X>Y  alors
                                   R
<--  X ;
                                Sinon
                                    R
<--  Y ;
                              Finsi
                              Si  Z>R 
Alors
                                  R <--  Z ;
                               finsi
                Fincas
                Si (choix>=1 ) et
(choix<=5) alors
                    Ecrire(‘Le resultat est :
’,R) ;
                Sinon
                    Ecrire(‘votre choix est
mauvais … !’) ;
              Finsi
          Fincas
               Si (Q<1) ou (Q>4) alors
                      Ecrire(‘Erreur de choix’)
;
               Sinon
                           R <--  TN *TR ;
                           PAR <--  TN+R ;
                             Ecrire(‘Le prix à
payer est :’,PAP) ;
                Finsi
Fin
____________________________________________________________________________________________________________
Exercice 9 :
Ecrire un algorithme qui compare
deux dates représentées chacune par trois entiers.
____________________________________________________________________________________________________________
Solution :
Algorithme  compare_date;
Var
            j1,m1,a1,j2,m2,a3: réels ;
Début
                Ecrire(‘************date 1
***********‘) ;
                Ecrire(‘jour: ‘) ;
                Lire(j1) ;
                Ecrire(‘Mois : ‘) ;
                Lire(m1) ;
    Ecrire(‘Année : ‘) ;
                Lire(a1) ;
                Ecrire(‘************date 2
***********‘) ;
                Ecrire(‘jour: ‘) ;
                Lire(j2) ;
                Ecrire(‘Mois : ‘) ;
                Lire(m2) ;
    Ecrire(‘Année : ‘) ;
                Lire(a2) ;
                Si  a1>a2 
alors
                     Ecrire (‘ la date 1 est plus
grande que la date 2 ’) ;
                Sinon si a1<a2 alors
                                 Ecrire(‘la
date 2 est plus grande que la date 1 ’) ;
                          Sinon Si  m1>m2 
alors
                                              Ecrire (‘ la
date 1 est plus grande que la date 2 ’) ;
                                       Sinon si
m1<m2 alors
                                                      
Ecrire(‘la date 2 est plus grande que la date 1 ’) ;
 
                                               Sinon
Si  j1>j2  alors
                                                                        
Ecrire (‘ la date 1 est plus grande que la date 2 ’) ;
                                                              
Sinon si j1<j2 alors
                                                                       
Ecrire(‘la date 2 est plus grande que la date 1 ’) ;
                                                             Finsi
                                                    
Finsi
                                         Finsi
                               Finsi
              finsi                                
fin



0 commentaires:
Enregistrer un commentaire