Vous êtes sur la page 1sur 28

Algo / Pascal

1
Algo /pascal
• Exercice 1 :
Ecrire un algorithme puis un programme
qui lit un nombre et affiche les 10 nombres
suivants:

2
Algo /pascal
Solution
Etape d’analyse Algorithme Programme pascal

Données: Algorithme exo1; program exo1;


Nombre Variable N,i : entier; Var N,i : integer;
Resultats: Debut begin
Ecrire(‘introduire un write(‘introduire un
Traitement: nombre’); nombre’);
- Introduire la valeur du Lire(N); read(N);
nombre Pour i = n à n+10 faire for i := n to n+10 do
-afficher les 10 nombres Ecrire(i); write(i, ‘ ‘);
suivant Fpour;
Fin. end.

3
Algo /pascal
Solution
pour Boucle tant que Boucle repeter

Algorithme exo1; Algorithme exo1; Algorithme exo1;


Variable N,i : entier; Variable N,i : entier; Variable N,i : entier;
Debut Debut Debut
Ecrire(‘introduire un Ecrire(‘introduire un Ecrire(‘introduire un
nombre’); nombre’); nombre’);
Lire(N); Lire(N); Lire(N);
Pour i = n à n+10 faire i ← N; i ← N;
Ecrire(i); Tant que i<= N+10 faire Repeter
Fpour; Ecrire(i); Ecrire(i);
Fin. i ← i+1; i ← i+1;
Ftq; Jusqu’à (i >n+10);
Fin. Fin.

4
Algo /pascal
• Exercice 2 :
• Ecrire un algorithme puis un programme
qui fait la somme des 10 premiers
nombres entiers positifs

5
Algo /pascal
Solution
Etape d’analyse Algorithme Programme pascal

Données: Algorithme exo2; program exo2;


Variable i,som : entier; Var i,som : integer;
Resultats: Debut begin
somme som←0; Som:=0;
Traitement: Pour i = 1 à10 faire for i := 1 to 10 do
- Calculer la somme som←som+i; Som:=som+i;
-afficher le résultat Fpour; write(‘le resultat est ‘,som
Ecrire (som); );
Fin.
end.

6
Algo /pascal
Solution
pour Boucle tant que Boucle repeter

Algorithme exo2; Algorithme


; exo2; Algorithme exo2;
Variable i,som : entier; Variable i,som : entier; Variable i,som : entier;
Debut Debut Debut
som←0; som←0; som←0;
Pour i = 1 à10 faire i←1; i←1;
som←som+i; Tant que i<=10 faire repeter
Fpour; som←som+i; som←som+i;
Ecrire (som); i←i+1; i←i+1;
Fin. Ftq; Jusqu’à (i>10);
Ecrire (som); Ecrire (som);
Fin. Fin.

7
Algo /pascal
• Exercice 3 :
• Ecrire un algorithme puis un programme
qui calcule la moyenne de N nombres
réels entrées par l’utilisateur, N tant lui
aussi fournit par l’utilisateur.

8
Algo /pascal
Solution
Etape d’analyse Algorithme Programme pascal

Données: N,X Algorithme exo3; program exo3;


Resultats: moy Variable N,X: entier; Var N,i : integer;
Traitement: moy:reel begin
-Introduire le nombre de Debut write(‘introduire le nombre de
valeurs Ecrire(‘introduire le nombre valeurs’);
read(N);
-Introduire les valeurs de valeur’);
Moy:=0;
- Calculer la somme Lire(N); for i := 1 to 10 do
Moy←0; begin
-afficher le résultat Pour i = 1 à 20 faire read(X);
Lire(X); Moy:=moy+X;
Moy← moy+X; End;
Fpour; Moy:=moy/N;
Moy← moy/N; write(moy);
Ecrire(moy);
end.
Fin.
9
Algo /pascal
Solution
pour Boucle tant que Boucle repeter

Algorithme exo3; Algorithme exo3; Algorithme exo3;


Variable N,X: entier; Variable N,X: entier; Variable N,X: entier;
moy:reel moy:reel moy:reel
Debut Debut
Debut
Ecrire(‘introduire le nombre de Ecrire(‘introduire le nombre de
Ecrire(‘introduire le nombre valeur’);
de valeur’); valeur’);
Lire(N); Lire(N);
Lire(N); i ← 1; i ← 1;
Moy←0; Moy←0; Moy←0;
Pour i = 1 à 20 faire Tant que i<= 20 faire Repeter
Lire(X); Lire(X); Lire(X);
Moy← moy+X; Moy← moy+X; Moy← moy+X;
i ← i+1; i ← i+1;
Fpour;
Ftq; Jusqu’à (i >20);
Moy← moy/N; Moy← moy/N;
Ecrire(moy); Moy← moy/N;
Ecrire(moy); Ecrire(moy);
Fin. Fin. Fin.
. 10
Algo /pascal
• Exercice 4 :
• Ecrire un algorithme puis un programme
qui permet de calculer le résultat de la
division d’un entier a par un entier b par
soustractions successives.

11
Algo /pascal
Solution
Etape d’analyse Algorithme Programme pascal

Données: Algorithme exo4; program exo4;


a,b Variable a,b ,d: entier; Var a,b,d : integer;
Resultats: Debut begin
D Ecrire(‘introduire deux write(‘introduire deux
Traitement: nombres’); nombres ’);
-Introduire les valeurs de a Lire(a,b); read(a,b);
et b d←0; D:=0;
-Calculer la division Tant que b>a faire While b>a do
-afficher le résultat b←b-a; begin
d←d+1; b:=b-a;
Ftq; d:=d+1;
Ecrire(d); End;
Fin. write(‘la division de ‘,b, ‘ sur
’,a,’ egal ’,d);
end.
12
Algo /pascal
Solution
pour Boucle tant que Boucle repeter

Algorithme exo4; Algorithme exo4;


Variable a,b ,d: entier; Variable a,b ,d: entier;
Debut Debut
Ecrire(‘introduire deux Ecrire(‘introduire deux
nombres’); nombres’);
Lire(a,b); Lire(a,b);
d←0; d←0;
Tant que b>a faire si b> a alors
b←b-a; repeter
d←d+1; b←b-a;
Ftq; d←d+1;
Ecrire(d); Jusqu’à b<a;
Fin. Ecrire(d);
Fin.

13
Algo /pascal
• Exercice 5 :
• Ecrire un algorithme qui demande un nombre
compris entre 10 et 20, jusqu’à ce que la
réponse convienne.
En cas de réponse supérieure à 20, on fera
apparaître un message : « Plus petit ! », et
inversement, « Plus grand ! » si le nombre est
inférieur à 10.

14
Algo /pascal
Solution
Etape d’analyse Algorithme Programme pascal

Données: Algorithme exo5; program exo5;


Nombre Variable N : entier; Var N : integer;
Resultats: Debut begin
Ecrire(‘introduire un nombre’); write(‘introduire un nombre’);
Lire(N); read(N);
Traitement: Tant que (n<10) et(n>20) faire
- Introduire nombre while(n<10) and (n>20) do
Si n<10 alors begin
entre 10 et 20 Ecrire(‘plus petit !’); if n<10 then
Finsi; write(‘plus petit !’);
Si n<10 alors If n>20 then
Ecrire(‘plus petit !’); write(‘plus petit !’);
Finsi; write(‘introduire un nombre’);
Ecrire(‘introduire un nombre’); read(N);
Lire(N); end;
Ftq; end.
Fin.

15
Algo /pascal
Solution
pour Boucle tant que Boucle repeter

Algorithme exo5; Algorithme exo5;


Variable N : entier; Variable N : entier;
Debut Debut
Ecrire(‘introduire un nombre’); repeter
Lire(N); Ecrire(‘introduire un nombre’);
Tant que (n<10) et(n>20) faire Lire(N);
Si n<10 alors Si n<10 alors
Ecrire(‘plus petit !’); Ecrire(‘plus petit !’);
Finsi; Finsi;
Si n<10 alors Si n<10 alors
Ecrire(‘plus petit !’); Ecrire(‘plus petit !’);
Finsi; Finsi;
Ecrire(‘introduire un nombre’); Jusqu’à (n>=10) et (n<=20);
Lire(N);
Ftq; Fin.
Fin.

16
Algo /pascal
• Exercice 7 :
• Ecrire un algorithme puis un programme qui
demande un nombre de départ, et qui ensuite
écrit la table de multiplication de ce nombre.

17
Algo /pascal
Solution
Etape d’analyse Algorithme Programme pascal

Données: Algorithme exo1; program exo1;


Nombre Variable N,i : entier; Var N,i : integer;
Resultats: Debut begin
quotient, reste Ecrire(‘introduire un write(‘introduire un
Traitement: nombre’); nombre’);
- Introduire la valeur du Lire(N); read(N);
nombre Pour i = n à n+10 faire for i := n to n+10 do
-afficher les 10 nombres Ecrire(i); write(i, ‘ ‘);
suivant Fpour;
Fin. Fin.

18
Algo /pascal
Solution
pour Boucle tant que Boucle repeter

Algorithme exo1; Algorithme exo1; Algorithme exo1;


Variable N,i : entier; Variable N,i : entier; Variable N,i : entier;
Debut Debut Debut
Ecrire(‘introduire un Ecrire(‘introduire un Ecrire(‘introduire un
nombre’); nombre’); nombre’);
Lire(N); Lire(N); Lire(N);
Pour i = n à n+10 faire i ← N; i ← N;
Ecrire(i); Tant que i<= N+10 faire Repeter
Fpour; Ecrire(i); Ecrire(i);
Fin. i ← i+1; i ← i+1;
Ftq; Jusqu’à (i >n+10);
Fin. Fin.

19
Algo /pascal
• Exercice 6 :
• Ecrire un algorithme puis un programme qui
demande un nombre de départ, et qui calcule la
somme des entiers jusqu’à ce nombre. Par
exemple, si l’on entre 5, le programme doit
calculer :
• 1 + 2 + 3 + 4 + 5 = 15
• NB : on souhaite afficher uniquement le résultat,
pas la décomposition du calcul.

20
Algo /pascal
Solution
Etape d’analyse Algorithme Programme pascal

Données: Algorithme exo1; program exo1;


Nombre Variable N,i : entier; Var N,i : integer;
Resultats: Debut begin
quotient, reste Ecrire(‘introduire un write(‘introduire un
Traitement: nombre’); nombre’);
- Introduire la valeur du Lire(N); read(N);
nombre Pour i = n à n+10 faire for i := n to n+10 do
-afficher les 10 nombres Ecrire(i); write(i, ‘ ‘);
suivant Fpour;
Fin. Fin.

21
Algo /pascal
Solution
pour Boucle tant que Boucle repeter

Algorithme exo1; Algorithme exo1; Algorithme exo1;


Variable N,i : entier; Variable N,i : entier; Variable N,i : entier;
Debut Debut Debut
Ecrire(‘introduire un Ecrire(‘introduire un Ecrire(‘introduire un
nombre’); nombre’); nombre’);
Lire(N); Lire(N); Lire(N);
Pour i = n à n+10 faire i ← N; i ← N;
Ecrire(i); Tant que i<= N+10 faire Repeter
Fpour; Ecrire(i); Ecrire(i);
Fin. i ← i+1; i ← i+1;
Ftq; Jusqu’à (i >n+10);
Fin. Fin.

22
Algo /pascal
• Exercice 7 :
• Ecrire un algorithme puis un programme qui
demande un nombre de départ, et qui calcule
son factoriel.

23
Algo /pascal
Solution
Etape d’analyse Algorithme Programme pascal

Données: Algorithme exo1; program exo1;


Nombre Variable N,i : entier; Var N,i : integer;
Resultats: Debut begin
quotient, reste Ecrire(‘introduire un write(‘introduire un
Traitement: nombre’); nombre’);
- Introduire la valeur du Lire(N); read(N);
nombre Pour i = n à n+10 faire for i := n to n+10 do
-afficher les 10 nombres Ecrire(i); write(i, ‘ ‘);
suivant Fpour;
Fin. Fin.

24
Algo /pascal
• Exercice 8
• Ecrire un algorithme puis un programme qui
demande successivement 20 nombres à
l’utilisateur, et qui lui dise ensuite quel était le
plus grand parmi ces 20 nombres.

25
Algo /pascal
Solution
Etape d’analyse Algorithme Programme pascal

Données: Algorithme exo5; Algorithme exo5;


A,B,C Variable A,B,C : entier; Var A,B,C,E : integer;
Resultats: Debut begin
A,B,C Ecrire(‘introduire trois write(‘introduire trois
Traitement: valeurs’); valeurs’);
- Introduire les valeurs de A, Lire(A,B,C); read(A,B,C);
B, C A← B; E:=A;
-Echanger le valeurs B←C; A:= B;
- afficher les résultats C ←A; B:=C;
Ecrire(‘A =‘,A, ‘B =‘,B, ‘C C :=E;
=‘,C); write(‘A =‘,A, ‘B =‘,B, ‘C
Fin. =‘,C);
end.

26
Algo /pascal
Solution
Etape d’analyse Algorithme Programme pascal

Données: Algorithme exo5; Algorithme exo5;


A,B,C Variable A,B,C : entier; Var A,B,C,E : integer;
Resultats: Debut begin
A,B,C Ecrire(‘introduire trois write(‘introduire trois
Traitement: valeurs’); valeurs’);
- Introduire les valeurs de A, Lire(A,B,C); read(A,B,C);
B, C A← B; E:=A;
-Echanger le valeurs B←C; A:= B;
- afficher les résultats C ←A; B:=C;
Ecrire(‘A =‘,A, ‘B =‘,B, ‘C C :=E;
=‘,C); write(‘A =‘,A, ‘B =‘,B, ‘C
Fin. =‘,C);
end.

27
Algo /pascal
Solution
Etape d’analyse Algorithme Programme pascal

Données: Algorithme exo5; Algorithme exo5;


A,B,C Variable A,B,C : entier; Var A,B,C,E : integer;
Resultats: Debut begin
A,B,C Ecrire(‘introduire trois write(‘introduire trois
Traitement: valeurs’); valeurs’);
- Introduire les valeurs de A, Lire(A,B,C); read(A,B,C);
B, C A← B; E:=A;
-Echanger le valeurs B←C; A:= B;
- afficher les résultats C ←A; B:=C;
Ecrire(‘A =‘,A, ‘B =‘,B, ‘C C :=E;
=‘,C); write(‘A =‘,A, ‘B =‘,B, ‘C
Fin. =‘,C);
end.

28