Programmation pascal

Fermé
AdR76790 - 30 oct. 2008 à 12:46
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 30 oct. 2008 à 19:56
Bonjour tout le monde,
Je suis actuellement en première année de cycle préparatoire d'ingénieur et je rencontre un problème sur un de mes exercices, chose qui ici m'était jamais encore arrivé.
J'ai un problème en ce qui concerne les instructions de répétitions ( WHILE-DO, REPEAT-UNTIL et FOR-DO).
Je ne comprends pas du tout mais du tout comment on peut effectuer des calculs avec ces instructions, je comprends juste comment on peut afficher ce que l'on ne fait que lire .

Exemple :

Program osef;

var

x: integer;
begin;
x:=2;
while compteur <= 20 do
begin
write (x);
x:= x+2;
end;
readln;
end.

Donc lors de l'exécution on aura 2 4 6 8 10 12 14 16 18 20

Donc voila, je sais comment utilisé cela, mais je ne sais vraiment pas comment le lié avec des calculs, comme un programme calculant une factorielle par exemple ( je sais qu'il faut utilisé l'instruction for do), je bloque, j'espère que vous pourrez m'aider.

Merci d'avoir au moins lu mon message, à bientôt j'espère.
A voir également:

1 réponse

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
30 oct. 2008 à 19:56
Si tu reprends la définition de la factorielle (par exemple)
	 n
	___
   n! =	| | k = 1*2*3*...*n

	k=1
Et bien pour calculer cela, il va te falloir faire une boucle sur k, allant de 1 à n pour calculer n!
En fait tu auras un compteur qui prendra successivement les valeurs 1! 2! 3! ... n!
function factorielle(n:integer):integer;
var k:integer;
begin
result:=1; // initialisation de la factorielle : 0!=1
for i:=1 to n do
        result:=k*result; // k! = k*(k-1)!
end;
0