ex algorithmique


Algorithmique

Algorithmique



Les outils de base de l’algorithmique

Exercice 1 :

Ecrire un algorithme qui demande les coordonnées de deux points dans le plan, calcule et affiche à l’écran la distance entre ces deux points.
N.B.  
la distance entre deux points A(x1,y1) et  B(x2,y2)    est :    AB= sqrt((x2-x1)^2  + (y2-y1)^2) 
on donne la fonction sqrt(x) qui renvoie la racine carrée d’un nombre réel  x .

Solution :
Algorithme  calcul_distance;
Var
      X1,x2,y1,y2,s : réels ;
Debut
            Ecrire(‘entrer la valeur de x1 : ‘) ;
            Lire(x1) ;
            Ecrire(‘’ entrer la valeur de y1 : ‘’) ;
            Lire(y1) ;
Ecrire(‘’ entrer la valeur de x2 : ‘’) ;
            Lire(x2) ;
Ecrire(‘’ entrer la valeur de y2 : ‘’) ;
            Lire(y2) ;
            S <-- sqrt((x2-x1)^2  + (y2-y1)^2) ;
            Ecrire(‘la distance entre A(‘ ,x1,’,’,y1,’) et  B(‘,x2,’,’,y2,’) est :  ‘,s) ;
fin


Exercice 2 :

Elaborer un algorithme permettant de demander les valeurs de trois résistances r1,r2 et r3 et de calculer et afficher leurs résistances équivalente dans les deux cas suivants :
N.B.  
Lorsque ces résistances sont branchées en série :
                                     Rser = r1+r2+r3
Lorsque ces résistances sont branchées en parallèle :
                           Rpar=(r1*r2*r3)/(r1*r2+r1*r3+r2*r3)

Solution :
Algorithme  calcul_resistance;
Var
      r1,r2,r3,Rpar,Rser: réels ;
Debut
                Ecrire(‘entrer la valeur de r1 : ‘) ;
                Lire(r1) ;
                Ecrire(‘ entrer la valeur de r2 : ’) ;
                Lire(r2) ;
Ecrire(‘ entrer la valeur de r3 :  ’) ;
                Lire(r3) ;
                Rser <--  r1+r2+r3;
                Rpar <--  (r1*r2*r3)/(r1*r2+r1*r3+r2*r3) ;
                Ecrire(‘ la résistance équivalente a r1 ,r2 et r3 en série est : ‘,Rser) ;
Ecrire(‘ la résistance équivalente a r1 ,r2 et r3 en parallèle  est : ‘,Rpar) ;
fin

Exercice 3 :

Ecrire un algorithme qui permet de calculer la surface d’un triangle quelconque  dont les cotés  ont une longueur donnée : a,b et c .
N.B.  
           S= sqrt(r*(r-a)*(r-b)*(r-c))      avec :     r =(a+b+c)/2
 

 Solution :
Algorithme  calcul_surface;
Var
      a,b,c,r,s : réels ;
Debut
                Ecrire(‘entrer la longueur du côté a  : ‘) ;
                Lire(a) ;
                Ecrire(‘entrer la longueur du côté b  : ‘) ;
                Lire(b) ;
    Ecrire(‘entrer la longueur du côté c  : ‘) ;
                Lire(c) ;
                r  <--     (a+b+c)/2 ;
                S <--  sqrt(r(r-a)(r-b)(r-c)) ;
                Ecrire(‘la surface du triangle abc est :  ‘,s);
Fin

Exercice 4 :

Dans une école un étudiant passe quatre matières à l’examen :
1ère  matiere écrite   :   coefficient =3
2ème matiere ecrite :     coefficient =2 
1ère matiere orale :       coefficient =4
2ème matière orale :     coefficient =5
Le coefficient de l’ecrit est 6, celui de l’orale est 1 dans le calcul de la moyenne generale.
Ecrire un algorithme permettant d’entrer toutes les notes de calculer et d’affficher la moyenne de l’ecrit ,celle de l’orale et la moyenne génerale.

Solution :
Algorithme  calcul_note;
Var
             me1,me2,mo1,mo2,moy : réels ;
const
             cme1=3 ;
             cme2=2 ;
              cmo1=4 ;
             cmo2=5 ;
Debut
                Ecrire(‘entrer la  note du 1ère matiere écrite : ‘) ;
                Lire(me1) ;
                Ecrire(‘entrer la  note du 2ème matiere écrite : ‘) ;
                Lire(me2) ;
    Ecrire(‘entrer la  note du 1ère matiere orale : ‘) ;
                Lire(mo1) ;
    Ecrire(‘entrer la  note du 2ème matiere orale: ‘) ;
                Lire(mo2) ;
                moy<--  (me1*cme1+me2*cme2+mo1*cmo1+mo2*cmo2)/(cme1+cme2+cmo1+cmo2) ;
   Ecrire(‘ la moyenne generale est   :  ‘,moy) ;
fin

Exercice 5 :

Ecrire un algorithme qui lit trois nombres dans trois variables A ,B et C , puis fait la permutation circulaire de ces trois nombres (sens trigonométrique) et affiche les nouveaux contenus des variables A,B et C .

Solution :
Algorithme  calcul_permutation;
Var
            A,b,c,aux : réels ;
Debut
                Ecrire(‘entrer la  de a : ‘) ;
                Lire(a) ;
                Ecrire(‘entrer la  de b : ‘) ;
                Lire(b) ;
    Ecrire(‘entrer la  de c : ‘) ;
                Lire(c) ;
    Ecrire(‘a = ‘,a,’     b= ‘,b,’         c=’,c) ;
                Auxß c ;
                a<--  b ;
                b<--  a ;
                a<--  aux ;
Ecrire(‘a = ‘,a,’     b= ‘,b,’         c=’,c) ;
fin

Exercice 6 :

Soit N un nombre entier. Proposer une opération avec laquelle nous pourrons conclure si le nombre N est pair ou impair.

Solution :
Algorithme  parite;
Var
      N :entier;
Debut
                Ecrire(‘entrer  un entier : ‘) ;
                Lire(N) ;
                Si  N mod 2 =0 alors
        Ecrire(‘le nombre est pair);
    Else
         Ecrire(‘le nombre est impair .’);
   Finsi
fin

Exercice 7 :

Ecrire un algorithme qui calcule le périmetre d’un cercle : p=2*p*R

Solution :
Algorithme  calcul_perimetre;
Const
           Pi=3.14 ;
Var
            R,p: réels ;
Debut
                Ecrire(‘entrer le rayon R : ‘) ;
                Lire(R) ;
                P<--  2*pi*R
Ecrire(‘ le perimetre du cercle R=’,R,’ est   :’,p) ;
fin




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 :
Copyright © 2012 OFPPT - Site officiel de communication - Tous droits réservés
ofppt.01.ma © 2017.Free Web Site