____________________________________________________________________________________________________________
____________________________________________________________________________________________________________
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