Année Universitaire : 2022-2023
Parcours : LP-GE-S2
Unité d’Enseignement : NF1226
DEVOIR DE PROGRAMMATION
Présenté par KADANGA YAO Kirem Caleb
1
Exercice 1
▪ Cahier de charges
Un libraire offre une réduction de 5% sur le montant de ses achats à tout
acheteurs d’au moins 5 livres dans la collection 1 et d’au moins 3 livres
dans la collection 2. Un livre de collection 1 coûte 3500f tandis qu’un
livre de la collection 2 coûte 2500f. Ecrire un programme en pascal
permettant de calculer le montant à payer pour tout achat de livres
choisis dans les deux collections.
▪ Programme
Program Exo1;
Var mtcol1,mtcol2:real;
x,y,t:integer;
begin
Writeln('Salut');
Writeln('A quelle collection vous interressez-vous?');
Writeln('Entrez "1" si vous voulez la collection1,"2" si vous
voulez la collection2 et "3" si vous vous interressez aux
deux collections');
Read (y);
If y=1 then
begin
writeln('Combien de livre vous désirez payer ?');
writeln('Mettez juste le nombre');
read(x);
if x<5 then
begin
mtcol1:=x*3500;
Writeln('Vous de payer ',mtcol1:5:2,'franc');
end;
if x > 4 then
begin
mtcol1:=x*3500*0.95;
Writeln('Vous de payer ',mtcol1:5:2,'franc');
end;
end;
if y=2 then
begin
writeln('Combien de livre vous désirez payer ?');
2
writeln('Mettez juste le nombre');
read(x);
if x<3 then
begin
mtcol2:=x*2500;
Writeln('Vous de payer ',mtcol2:5:2,'franc');
end;
if x > 2 then
begin
mtcol2:=x*2500*(1-5/100);
Writeln('Vous de payer ',mtcol2:5:2,'franc');
end;
end;
if y=3 then
begin
Writeln('De combien de livres désirez vous dans la
première collections?');
Read(x);
Writeln ('De combien de livres désirez vous dans la
seconde collection?');
read(t);
if t<3 then
begin
mtcol2:=t*2500;
end;
if t > 2 then
begin
mtcol2:=t*2500*(1-5/100);
end;
if x<5 then
begin
mtcol1:=x*3500;
end;
if x > 4 then
begin
mtcol1:=x*3500*0.95;
end;
end;
Writeln(' Vous devez payez ',mtcol1+mtcol2:5:2,' franc');
end.
3
4
Exercice 2
▪ Cahier de charges
Ecrire un programme en Pascal pour déterminer toutes les manières
possibles d’obtenir un total de 15 en ajoutant trois entiers naturels
choisis entre 1 et 9
▪ Programme
Program Exo2;
Var x,y,t,z:integer;
Const c=15;
begin
for x:=1 to 9 do
begin
for y:=1to 9 do
begin
for z:=1 to 9 do
begin
T:=x+y+z;
if T=c then
Writeln('15 ','= ',x,' + ',y,' + ',z);
end;
end;
end;
end.
5
Exercice 3
▪ Cahier de charges
Sans employer de formule, écrire un programme en Pascal pour
déterminer la somme des cubes des n+1 premiers entiers naturels de 0
àn
▪ Programme
program Exo3;
var n,x,i,s,t:integer;
begin
t:=0;
writeln('Entrez la valeur de n');
read(n);
for n:=0 to n do
begin
x:=n*n*n;
t:=t+x;
end;
writeln('la somme est : ',t);
end.
6
Exercice 4
▪ Cahier de charges
Le nombre 5 est entier Pythagoricien car il existe deux autres entiers, en
l’occurrence 3 et 4 tel que « 5 au carré = 4 au carré + 3 au carré ».
Ecrire un programme en Pascal pour rechercher tous les entiers
pythagoriciens compris entre 0 et 100
▪ Programme
program Exo4;
var x,y,z,t:integer;
begin
for x:=1 to 100 do
begin
for y:=1 to 100 do
begin
for z:= 1 to 100 do
begin
t:=y*y+z*z;
if t =x*x then
writeln(x,'² ','= ',y,'² ','+ ',z,'²');
end ;
7
end ;
end ;
end.
Exercice 5
▪ Cahier de charges
On appelle nombre d’Amstrong, tout entiers égales à la somme des
cubes de ses chiffres.
Ecrivez un programme en Pascal pour former tous les entiers de trois
chiffres et recherchez parmi eux les nombres d’Amstrong.
▪ Programme
Program Exo5;
var x,y,z,e:integer;
begin
for x:=1 to 9 do
begin
for y:=0 to 9 do
begin
for z:=0 to 9 do
begin
e:=(x*x*x)+(y*y*y)+(z*z*z);
if e=x*100+y*10+z then
writeln(x,y,z,' = ',x,'^3 ',y,'^3 ',z,'^3');
8
end;
end;
end;
end.
Exercice 6
▪ Cahier de charges
Soit x et n deux entiers.
Ecrivez un programme en Pascal pour calculer x puissance n par
multiplications successives.
▪ Programme
Program Exo6;
var x,n,e :integer;
begin
e:=1;
writeln('Entrez la valeur de x');
read(x);
writeln('Entrez la valeur de n');
read(n);
for n:=1 to n do
begin
e:=x*e;
9
end;
writeln(x,'^',n,'= ',e);
end.
Exercice 7
▪ Cahier de charge
Soit n un entier naturel. On appelle factorielle n et on note n ! le nombre
à n(n-1)(n-2)…3x2x1
Ecrivez un programme en Pascal pour calculer n !
Que se passe-t-il pour n assez grand ?
▪ Programme
program FactorialCalculation;
var
n, factorial,i : integer;
begin
writeln('Calcul de n! (factorielle)');
writeln('Entrez la valeur de n : ');
readln(n);
10
factorial := 1;
for i := 1 to n do
begin
factorial := factorial * i;
end;
writeln( n, '! = ', factorial);
end.
Exercice 8
▪ Cahier de charge
Ecrivez trois programmes qui devrons permettre :
a) De saisir des notes au clavier ;
b) D’en calculer la moyenne ;
Nous supposerons que le nombre de notes à saisir est connu.
Le premier programme utilisera l’instruction « FOR », le second
utilisera l’instruction « WHILE » et le troisième l’instruction
« REPEAT »
▪ Programme 1
program Exo8;
var
11
Notes, i: integer;
note, somme,moyenne: real;
begin
writeln('Calcul de la moyenne des notes (utilisation de
FOR)');
writeln('Entrez le nombre de notes à saisir : ');
readln(Notes);
somme := 0;
for i := 1 to Notes do
begin
writeln('Saisissez la note ', i, ' : ');
readln(note);
somme := somme + note;
end;
moyenne := somme / Notes;
writeln('La moyenne des notes est : ', moyenne:0:2);
end.
▪ Programme 2
program CalculMoyenneWhile;
12
var
Notes, i: integer;
note, somme,moyenne : real ;
begin
writeln('Calcul de la moyenne des notes (utilisation de
WHILE)');
writeln('Entrez le nombre de notes à saisir : ');
readln(Notes);
somme := 0;
i := 1;
while i <= Notes do
begin
writeln('Saisissez la note ', i, ' : ');
readln(note);
somme := somme + note;
i := i + 1;
end;
moyenne := somme / Notes;
writeln('La moyenne des notes est : ', moyenne:0:2);
end.
▪ Programme 3
13
program CalculMoyenneRepeat;
var Notes, i: integer;
note, somme,moyenne: real;
begin
writeln('Calcul de la moyenne des notes (utilisation de
REPEAT)');
writeln('Entrez le nombre de notes à saisir : ');
readln(Notes);
somme := 0;
i := 1;
repeat
writeln('Saisissez la note ', i, ' : ');
readln(note);
somme := somme + note;
i := i + 1;
until i > Notes;
moyenne := somme / Notes;
writeln('La moyenne des notes est : ', moyenne:0:2);
end.
14