Solutions des exercices de Module 3: Algorithmique et programmation

Exercices du cours :
Exercice 1 : Surface :
v Problème :
Ecrire un algorithme Surface qui permet de calculer et d’afficher la surface d’un Disque.
v  Analyse :
    Données :
ü  Données d’entrée :  - R: le rayon de disque
ü  Données de sortie :  - S : la surface de disque
ü  Données intermédiaires : Pi : le nombre constant 3.14..
    Actions :
o   Lire le rayon (R)
o   S= P*R*R
o   Afficher la surface (S)
v  Conception :
Algorithme Surface ;
Variables
            S,R :reel ;
Constantes 
            Pi= 3,141592 ;
Debut
            Ecrire(‘Donner  le rayon de disque ‘) ;
            Lire(R) ;
            S ßPi*R*R ;
            Ecrire(‘la surface de ce disque est : ‘ , S) ;
Fin.
v  Traduction en Pascal:
program Surface ; 
uses crt;
Var
     R,S :real ;
Const
     Pi= 3.141592 ;
Begin
     Write('Donner le rayon de disque:') ;
     Read(R) ;
     S := Pi*R*R ;
     Write('La surface est : ' , s:3:2) ;
     readkey;

End.
v Exemple d'exécution:

Exercice 2 : Equation :
v Problème : Ecrire un algorithme Equation qui permet de résoudre les équations de la forme ax+b=0  (en supposant que la valeur de a est différente de 0)
v  Analyse :
    Données :
ü  Données d’entrée :
a,b: les coefficients de l’équation
ü  Données de sortie :
X : la solution de l’équation
ü  Données intermédiaires :__
    Actions :
o   Lire les coefficients a et b
o   X=-b/a
o   Afficher la solution (x)
v  Conception :
Algorithme equation1 ;
Variable
            a,b,x :reel ;
debut
            Ecrire(‘Donner les coefficients de l’’équation a et b : ‘) ;
            Lire(a,b) ;
            X ß -b/a ;
            Ecrire(‘la solution est ‘ , x) ;
Fin
v  Traduction en Pascal:
program equation1 ;
Var
                a,b,x :real ;
begin
                write('Donner les coefficients de l''équation a et b : ') ;
                read(a,b) ;
               X :=-b/a ;
               writeln('la solution est ' , x:3:2) ;
end.
v Exemple d'exécution:

Exercice 3 : Distance :
v Problème : Ecrire un algorithme Distance qui permet de calculer et afficher la distance entre deux points M et N dont les coordonnées sont des entiers données. (Par rapport à un repère gradué)  M (a, b)     et     N (c, d) , d(M, N) =racine((a-c)*(a-c)+(b-d)*(b-d))
v  Analyse :
    Données :
ü  Données d’entrée :
a,b : coordonnés de M
c,d : coordonnées de N
ü  Données de sortie :
Distance : la distance entre M et N
    Actions :
o   Lire les coordonnées de M
o   Lire les coordonnées de N
o   Distance= racine((a-c)*(a-c)+(b-d)*(b-d))
o   Afficher la distance
v  Conception:
Algorithme                Distance ;
Variables :
            a, b ,c ,d , distance : reel ;
Debut 
            Ecrire(‘ donnez les cordonnées de M’) ;
            Lire(a, b) ;
            Ecrire(‘ donnez les cordonnées de N’) ;
            Lire(c, d) ;
            Distance ßracine((a-c)*(a-c)+(b-d)*(b-d)) ;
            Ecrire(‘la distance entre M et N est : ‘, distance) ;
Fin.

v  Traduction en Pascal:
Program distance ;
Uses crt ;
Var
                a, b, c, d, ab :real ;
begin
                Writeln('Bienvenu dans notre  programme Distance') ;
                write('donnez les cordonnées de M :') ;
                read( a,b) ;
                write('donnez les cordonnées de N:') ;
                read( c,d) ;
                ab := sqrt( sqr(c-a) + sqr(d-b)) ; {sqrt(x)= racine(x), sqr(x)= x*x)}
                writeln ('La distance entre M et N est :' , ab:3:2) ;
                writeln('Merci d''avoir utiliser notre programme, a bientôt !'); {deux  apostrophes permettent d’afficher un seul}
                write('Appuyez sur une touche pour quiter le programme') ;
                readkey ;

end.
v Exemple d'exécution:

Exercice 4 : Rayon_disque:
v Problème : Écrire un algorithme Rayon_disque  qui lit la surface d’un disque et renvoi son rayon.
v  Analyse :
    Données :
ü  Données d’entrée : - S : la surface de disque
ü  Données de sortie : - R : le rayon de disque
ü  Données intermédiaires : - Pi : le nombre constant (3.14...)
    Actions :
o   Lire la surface
o    R=racine(s/pi)
o   Afficher le rayon
v  Conception :
Algorithme Rayon_disque ;
Variables
            S,R :reel ;
Constantes 
            Pi= 3,141592 ;
Debut
            Ecrire(‘Donner la surface  de disque ‘) ;
            Lire(S) ;
            R ßRacine(S/Pi) ;
            Ecrire(‘le rayon de ce disque est : ‘ , S) ;
Fin



Série N° 1 : 

Exercice 1
Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variable A, B : Entier ;

Début

A ← 1;
B ← A + 3;
A ← 3;
Fin

R :

A
B
A ← 1;
1

B ← A + 3;
1
4
A ← 3;
3
4
A la fin de l’exécution : A=3 et B=4
Exercice 3
Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variable A, B : Entier;

Début

A ← 5;
B ← A + 4;
A ← A + 1;
B ← A – 4;
Fin

R :

A
B
A ← 5
5

B ← A + 4
5
9
A ← A + 1
6
9
B ← A – 4
6
2
A la fin de l’exécution : A=6 et B=2
Exercice 4
Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes ?
Variable A, B, C : Entier;

Début

 A ← 3;
B ← 10;
C ← A + B;
B ← A + B;
A ← C;
Fin

R :

A
B
C
 A ← 3
3


B ← 10
3
10

C ← A + B
3
10
13
B ← A + B
3
13
13
A ← C
13
13
13
A la fin de l’exécution : A=13 B=13 et C=13
Exercice 5
1) Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variable A, B : Entier;

Début

A ← 5;
B ← 2;
A ← B;
B ← A;
Fin

2)  les deux dernières instructions permettent-elles d’échanger les deux valeurs de B et A ? 

3)  Si l’on inverse les deux dernières instructions, cela change-t-il quelque chose ?

4)  Proposer un algorithme qui permet d’échanger le contenu de deux variables.
:
1)

A
B
A ← 5
5

B ← 2
5
2
A ← B
2
2
B ← A
2
2
A la fin de l’exécution : A= B=2
2) Non, la valeur initiale de A est perdu.
3) Oui, dans ce cas la valeur de B sera écrasé.
4)  Variable A, B,C : Entier;

Début

A ← 5;
B ← 2;

C ← B;

B ← A;

 A← C;
Fin


Exercice 6
Quel résultat produit l’algorithme suivant :
Variables  val, double : réel ;

Début

Val ← 231 ;
Double ← Val * 2 ;
Ecrire (Val) ;
Ecrire (Double) ;
Fin

Résultat de l’execution :
231
462
Exercice 7 (+video  askka inchaallah)
Ecrire un algorithme qui demande un nombre à l’utilisateur, puis qui calcule et  affiche le carré de ce nombre.
v  Analyse :
    Données :
ü  Données d’entrés :
N: un nombre reel
ü  Données de sortie : C : le carré du nombre
    Actions :
o   Lire le nmbre N
o   C=N*N

o   Afficher C
v  Conception :
...
Exercice 8
Ecrire un algorithme qui lit le prix d’un produit et la quantité achetée de ce produit, et qui fournit le prix total correspondant.

Exercice 9 : Ecrire un algorithme qui lit le nom et l’âge d’une personne et affiche par la suite ce message suivant : Bonjour Nom votre âge est Age.
Exemple : Bonjour Ahmed  votre âge est 17 ans 
Série N° 2 :

Exercice 1

Écrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si leur produit est négatif ou positif.
v  Conception :
Algorthme signeproduit ;
Variable
       A,B :reel ;
Debut
       Ecrire(‘Donnez deux nombre’) ;
       Lire(a,b) ;
       Si (a*b)<0 alors
                   Ecrire(‘le produit  de ces nombre est négatif ‘) ;
       Sinon
                   Ecrire(‘le produit  de ces nombre est positif ‘) ;
       Finsi

fin
Exercice 2
Écrire un algorithme Est_Pair qui retourne si un nombre entier est paire ou impaire
v  Conception :
Algorithme Est_Pair ;
Variable
            N :Entier ;
Debut
            Lire(N) ;
       Si (N mod 2) =0 alors
                   Ecrire(‘c’’est un nombre paire ‘) ;
       Sinon
                   Ecrire(‘c’’est un nombre impaire ‘) ;
       Finsi

fin
Exercice 3
Écrire un algorithme qui demande trois noms à l’utilisateur et l’informe ensuite s’ils sont rangés ou non dans l’ordre alphabétique.
Algorithme Est_Pair ;
Variable
            N1,N2,N3 :Chaine ;
Debut
            Lire(N1) ;
Lire(N2) ;
Lire(N3) ;
       Si (N1<N2) ET (N2<N3) alors
                   Ecrire(‘Ordonnés ‘) ;
       Sinon
                   Ecrire(‘pas ordonnés ‘) ;
       Finsi

fin
Exercice 4
Écrire un algorithme qui va résoudre une équation de 2eme degré  ( ax²+bx+c=0)
v  Analyse :
    Données :
ü  Données d’entrés :
a,b,c: coefficients
ü  Données de sortie : x1,x2 : solutions
ü  Données intermédiaires : D : Discriminant
    Actions :
o   Lire les coefficients a ,b et c
o   Si a=0 c’est une équation de premier degré
o   Sinon
§  D=-b-4*a*c
§  Si D>0
·         X1=
·         X2=
·         Afficher les solutions
§  Si D=0
·         X1=
·         Afficher la solution
§  Si D<0
·         Afficher « Pas de solution »
v  Conception :
Algorithme equation1 ;
Variable
      a,b,c,x1,x2,D :reel ;
debut
      Ecrire(‘Donner les coefficients de l’’équation a ,b et c : ‘) ;
      Lire(a,b,c) ;
      Si a=0 alors
                  Ecrire(‘c’’est une équation de premier degré ‘ ) ;
      Sinon
                  D ßb*b-4*a*c ;
                  Si D>0 alors
                             X1ß(-b-racine(D))/(2*a) ;
                             X1ß(-b+racine(D))/(2*a) ;
                             Ecrire(‘les solutions sont :’,X1, ‘ ET ‘,X2) ;
                  Sinon
                             Si D=0 alors
                                         X1ß(-b-racine(D))/(2*a) ;
                                         Ecrire(‘la solution est :’,X1) ;
                             sinon
                                         Ecrire (‘l’’équation n’’a pas de solution’) ;
                             Finsi
                   Finsi
      finsi

Fin
v  Traduction en Pascal :
program equation2;
  uses crt;
var
  a,b,c,x1,x2,d:real;
begin
  write('donne a et b et c');
  read(a,b,c);
  if a =0then
       write('c"est une equation de premier degri')
else
  begin
     D:=b*b-4*a*c;
  if d>0then
    begin
       x1:=(-b+sqrt(d))/(2*a);
       x2:=(-b-sqrt(d))/(2*a);
       write('les solutions sont');
       write(x1:3:2,'et',x2:3:2);
    end
    else
      if d=0 then
       begin
           x1:=-b/(2*a);
            write('la solution est',x1:3:2);
       end
    else
         write('l"equation n"a pas de solution');
  end;
  readkey
End.
Exercice 5
Écrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il l’informe de sa catégorie :
"Poussin" de 6 à 7 ans
"Pupille" de 8 à 9 ans
"Minime" de 10 à 11 ans
"Cadet" après 12 ans
Peut-on concevoir plusieurs algorithmes équivalents menant à ce résultat ?
Exercice 6
Code TVA (CTVA)
TVA
1
2
3
4
5
0.123
0.165
0.167
0.155
0.50
1)     Écrire un algorithme Facture1 qui calcule et affiche le prix toute taxe comprise (PTTC) d'un article, à partir du prix total hors taxe (PTHT) et de taxe sur valeur ajoutée (TVA) en utilisant la formule suivante : PTTC= PTHT + PTHT x TVA.
2)     Écrire un algorithme Facture2 qui calcule et affiche le prix toute taxe comprise (PTTC) d'un article, à partir du prix total hors taxe (PTHT) et selon le code TVA (CTVA).

Aucun commentaire:

Enregistrer un commentaire