Série algorithmique IV: "Instructions conditionnelles et alternatives"

print this page
send email
____________________________________________________________________________________________________________
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