____________________________________________________________________________________________________________
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