Instructions conditionnelles et alternatives


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;
Debut
                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;
Debut
                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;
Debut
                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;
Debut
                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;
Debut
                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;
Debut
                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 ;
Debut
                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’equation 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’equation a deux solution:  S1= ’,(-b- /(2*a) ,’ et  S2 = ‘,(-b+ /(2*a)) ;
                                   Sinon
                                         Ecrire(‘l’equation 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;
Debut
                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 ;
Debut
                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 ;
Debut
                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

Suivant
« Précédent
Précédent
Suivant »

ConversionConversion EmoticonEmoticon

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.