Série algorithmique VIII: "Les sous programmes (les procédures et fonctions)"

print this page
send email
____________________________________________________________________________________________________________
Exercice 1 :
Ecrire un sous programme qui reçoit un nombre réel, comme paramètre, teste s’il est négatif, positif ou nul et affiche le résultat à l’écran.
Prévoir un algorithme appelant ce sous programme.
____________________________________________________________________________________________________________

Solution :
Procédure  signe(a :réel)();
Début
                Si a>0 alors
                               Ecrire (‘le nombre est positif’)
                Sinon
                          Si a<0 alors
                                               Ecrire (‘le nombre est negatif’)
                          Sinon
                                               Ecrire (‘le nombre est nul’) ;
                          Finsi
                Finsi 
Fin

Algorithme determination signe ;
Var
                X : réel ;
Début
                Ecrire(‘Entrer un nombre réel ‘) ;
                Lire(x) ;
                Signe(X)() ;
fin
____________________________________________________________________________________________________________
Exercice 2 :
Ecrire un sous programme permettant de calculer la surface d’un trapèze.
Prévoir un algorithme appelant ce sous programme.
N.B :
                           S= (Gb+Pb)*h/2
                             Avec :
                                               Gb : grande base du trapèze
                                               Pb : petite base du trapèze
                                               h :  la hauteur du trapèze
____________________________________________________________________________________________________________
Solution :
Fonction surface (Gb,Pb,h :réel)( ) :réel;
Var
                S : réel ;
Début
                S <-- (Gb+Pb)*h/2 ;
                Retour (S) ;
Fin

Algorithme surface_trapeze;
Var
                X,Y,Z,T : réel ;
Début
                Ecrire(‘Entrer  la grande base : ‘) ;
                Lire(X) ;
                Ecrire(‘Entrer  la petite base : ‘) ;
                Lire(Y) ;
                Ecrire(‘Entrer  la hauteur: ‘) ;
                Lire(Z) ;
                T  <--  surface(X ,Y,Z)() ;
                Ecrire(‘la surface de ce trapèze est :’,T) ;
fin
____________________________________________________________________________________________________________
Exercice 3 :
On désire effectuer des opérations arithmétiques usuelles sur les nombres réels.
Ecrire un algorithme contenant les sous programmes suivants :
-Une procédure saisie d’un nombre réel,
-Une procédure affichage d’un nombre réel,
-Une procédure somme de deux nombres réels,
-Une procédure différence de deux nombre réels,
-Une procédure rapport de deux nombres réels,
-Une fonction racine carrée d’un nombre réel,
-Une fonction  carrée d’un nombre réel,
-Une procédure menu de gestion de toutes ces opérations.
____________________________________________________________________________________________________________
Solution :
-Procédure saisie :
Procédure saisie ()( A :réel) ;
Début
                Ecrire(‘entrer un nombre réel :’);
                Lire(A) ;
fin
-Procédure affichage :
Procédure affichage (A :réel)( ) ;
Début
                Ecrire(‘le résultat est :’,A);
fin
-Procédure somme :
Procédure somme (A, B: réel)(S :réel ) ;
Début
                S ß<--  A+B ;
fin
-Procédure différence :
Procédure différence (A, B: réel)( D :réel) ;
Début
                D <--  A-B ;
fin
-Procédure produit :
Procédure produit (A, B: réel)( P :réel) ;
Début
                P <--  A*B ;
fin
-Procédure rapport:
Procédure produit (A, B: réel)( R :réel) ;
Début
                R <--  A/B ;
fin
-Fonction  inverse:
Fonction inverse (A : réel)( ) : réel;
Var
                I : réel ;
Début
                I <-- 1/A;
                Retour (I) ;
fin
-Fonction racine carrée :
Fonction racine (A : réel)( ) : réel;
Var
                R : réel ;
Début
                R<-- sqrt(A);
                Retour (R) ;
fin
-Fonction  carrée :
Fonction carrée (A : réel)( ) : réel;
Var
                C : réel ;
Début
                C<-- A*A ;
                Retour (C) ;
fin
-Procédure menu :
Procédure menu ()( ) ;
Var
                Choix : Caractère ;
Début
            Ecrire(‘*************** Menu ****************’);
Ecrire(‘ 1   ********** **Somme ***************’);
Ecrire(‘2 *************Différence**************’);
Ecrire(‘3 ************* Produit****************’);
Ecrire(‘4 ************* Rapport ***************’);
Ecrire(‘5 ************* Inverse ****************’);
Ecrire(‘6 ************ Racine carrée ************’);
Ecrire(‘7 ************ * carrée ****************’);
Ecrire(‘8 ************** Quitter ***************’);
Ecrire(‘*************************************’);
            Ecrire(‘entre votre choix :’) ;
Lire(choix) ;
           Cas choix
‘1’ :        saisie()(X) ;
                saisie()(Y) ;
                somme(X,Y)(Z) ;
                affichage(Z)() ;
‘2’ :        saisie()(X) ;
                saisie()(Y) ;
                différence (X,Y)(Z) ;
                affichage(Z)() ;
‘3’ :        saisie()(X) ;
                saisie()(Y) ;
                produit (X,Y)(Z) ;
                affichage(Z)() ;
 ‘4’ :       saisie()(X) ;
                saisie()(Y) ;
                si Y=0 alors
                               Ecrire(‘calcul impossible !! ‘)
                Sinon
                               rapport(X,Y)(Z) ;
                               affichage(Z)() ;
                Finsi
‘5’ :        saisie()(X) ;
                si X=0 alors
                               Ecrire(‘calcul impossible !! ‘)
                Sinon
                               Z <--  inverse (X)() ;
                               affichage(Z)() ;
                Finsi
‘6’ :        saisie()(X) ;
                si X<0 alors
                               Ecrire(‘calcul impossible !! ‘)
                Sinon
                               Z <--  racine (X)() ;
                               affichage(Z)() ;
                Finsi
‘7’ :        saisie()(X) ;
                Z <--  carree(X)() ;
                affichage(Z)() ;
‘8’ :        Ecrire (‘A bien tôt ‘) ;
Sinon
Ecrire (‘votre choix est mauvais ‘) ;
      Fincas ;
Fin
-Algorithme  permettant d’appeler cette procédure menu de gestion de toutes les opérations :
Algorithme calculs_réels;
Var
                X,Y,Z : réel ;
Début
                Tantque (3<4) (*boucle infinie*)
                               Menu()() ;
                Fintantque
fin
____________________________________________________________________________________________________________

0 commentaires:

Enregistrer un commentaire