[PASCAL]: Sommation de factorielles
xmaster
-
xmaster -
xmaster -
Bonjour,
j'ai un probleme à resoudre en pascal
ecrire une traduction en pascal qui calcule la somme s= 1!+2!+3!+......................+ n! (factoriel)
j'ai fait une mais ca donne des resultats fausses. merci d'avance :)
program facto;
uses wincrt;
var i,j,x,y:integer;n:integer;
begin
repeat
write('donner un nombre');readln(n);
until (n>=0);
x:=1 ; y:=0;
if n=0 then
write (n,'!=1')
else begin
for i:=1 to n do
begin
for j:=1 to i do
begin
x:=x*j;
y:=y+b;x:=1;
end;
end;
write (y); end;
end.
j'ai un probleme à resoudre en pascal
ecrire une traduction en pascal qui calcule la somme s= 1!+2!+3!+......................+ n! (factoriel)
j'ai fait une mais ca donne des resultats fausses. merci d'avance :)
program facto;
uses wincrt;
var i,j,x,y:integer;n:integer;
begin
repeat
write('donner un nombre');readln(n);
until (n>=0);
x:=1 ; y:=0;
if n=0 then
write (n,'!=1')
else begin
for i:=1 to n do
begin
for j:=1 to i do
begin
x:=x*j;
y:=y+b;x:=1;
end;
end;
write (y); end;
end.
A voir également:
- [PASCAL]: Sommation de factorielles
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Le protocole assure que la communication entre l'ordinateur de pascal et le serveur de visiodoct est car les informations seront avant d'être envoyées. - Forum Pascal
- Probleme en pascal - Forum Pascal
2 réponses
merci beaucoup!!!!!!!!!
j'ai un probleme que j'ai pas trouver aucune solution et me semble impossible a resoudre
(si ça vous derange pas) je veux savoir une methode pour le resoudre
probleme:
ecrire un programme qui dessine sur deux lignes, deux caracteres ' * ' (etoile)
sachant que l'un se deplace de la gauche vers la droite et l'autre de la droite vers la gauche;
merci d'avance!!
j'ai un probleme que j'ai pas trouver aucune solution et me semble impossible a resoudre
(si ça vous derange pas) je veux savoir une methode pour le resoudre
probleme:
ecrire un programme qui dessine sur deux lignes, deux caracteres ' * ' (etoile)
sachant que l'un se deplace de la gauche vers la droite et l'autre de la droite vers la gauche;
merci d'avance!!
Salut
tu as le choix entre 2 voies :
1. je fais une somme de factorielles. Et comme la factorielle d'un nombre n'est pas forcément simple à écrire, je la case dans une fonction (récursive ou non) histoire de me simplifier l'écriture de mon programme principal
2. je note que pour chaque terme de ma somme, je pourrais disposer de (n-1)!. Ça pourrait grandement simplifier l'écriture: 2! = 2 * 1! => une fois 1! calculé, je le mets de côté en prévision du calcul de 2! ; ... ; une fois 18! calculé, je le mets de côté en prévision du calcul de 19! ; etc. Ainsi, arrivé à n!, je n'aurais fait que n-1 multiplications au lieu de n(n-1)/2 multiplications
=> pour l'option 1, vu que l'on utilise une fonction factorielle(x), l'écriture est :
=> pour l'option 2, on mémorise (n-1)!
tu as le choix entre 2 voies :
1. je fais une somme de factorielles. Et comme la factorielle d'un nombre n'est pas forcément simple à écrire, je la case dans une fonction (récursive ou non) histoire de me simplifier l'écriture de mon programme principal
2. je note que pour chaque terme de ma somme, je pourrais disposer de (n-1)!. Ça pourrait grandement simplifier l'écriture: 2! = 2 * 1! => une fois 1! calculé, je le mets de côté en prévision du calcul de 2! ; ... ; une fois 18! calculé, je le mets de côté en prévision du calcul de 19! ; etc. Ainsi, arrivé à n!, je n'aurais fait que n-1 multiplications au lieu de n(n-1)/2 multiplications
=> pour l'option 1, vu que l'on utilise une fonction factorielle(x), l'écriture est :
somme <- 0 pour x variant de 1 à n terme <- factorielle(x) somme <- somme + terme fin pourque tu simplifieras aisément
=> pour l'option 2, on mémorise (n-1)!
somme <- 0 factorielle <- 1 car 0! vaut 1 pour x variant de 1 à n factorielle <- factorielle * x somme <- somme + factorielle fin pourtu notons qu'à aucun moment il n'est nécessaire de deux boucles imbriquées et que l'utilisation de variables avec des noms significatifs simplifie la lecture de celui qui découvre