Récursivité - calcul de somme
3 participants
Page 1 sur 1
Récursivité - calcul de somme
Calculer la somme suivante à l'aide de récursivité :
Hanafi- Messages : 106
Date d'inscription : 25/10/2008
Re: Récursivité - calcul de somme
Oui, Rami, c'est possible. Si n=5 on va calculer la somme jusqu'à 8 : S=1+a^2/cos(2*a)+a^4/cos(4*a)+a^6/cos(6*a)+a^8/cos(8*a).
C.a.d n*2-2=5*2-2=8
Il faut faire une fonction récursive Puissance et une autre fonction récursive Somme. Le programme principal doit lire a et n et afficher le résultat en appelant une fonction Somme.
Essayez de le faire, c'est interessant.
C.a.d n*2-2=5*2-2=8
Il faut faire une fonction récursive Puissance et une autre fonction récursive Somme. Le programme principal doit lire a et n et afficher le résultat en appelant une fonction Somme.
Essayez de le faire, c'est interessant.
Hanafi- Messages : 106
Date d'inscription : 25/10/2008
Essai
fonction Calcul_somme(a,n,i:integer):reel
si i<=n alors
Calcul_somme=((a puis 2i-2)/cos((2i-2)*a) + Calcul_somme(a,n,i+1)
fin si
Calcul_somme (a,n,1)
fin Calcul_somme
si i<=n alors
Calcul_somme=((a puis 2i-2)/cos((2i-2)*a) + Calcul_somme(a,n,i+1)
fin si
Calcul_somme (a,n,1)
fin Calcul_somme
Re: Récursivité - calcul de somme
Somme=[ ]
Si i>2n-2 Alors
Somme=1
Sinon
Somme=(Puissance (a,i)/Cos (i*a))+Somme (a,n,i+2)
Finsi
L'appel Recursif :
Somme (a,n,2)
Voici le programme :
program ex;
uses wincrt;
var a,n:integer;
function puis(x,y:integer):longint;
begin
if y=0 then
puis:=1
else
puis:=puis(x,y-1)*x;
end;
function somme(a,n,i:integer):real;
begin
if i>2*n-2 then
somme:=1
else
somme:=somme(a,n,i+2)+puis(a,i)/cos(i*a);
end;
begin
write('Donner a ');
readln(a);
write('Donner n ');
readln(n);
write('Somme=',somme(a,n,2));
end.
Bonne révision
Si i>2n-2 Alors
Somme=1
Sinon
Somme=(Puissance (a,i)/Cos (i*a))+Somme (a,n,i+2)
Finsi
L'appel Recursif :
Somme (a,n,2)
Voici le programme :
program ex;
uses wincrt;
var a,n:integer;
function puis(x,y:integer):longint;
begin
if y=0 then
puis:=1
else
puis:=puis(x,y-1)*x;
end;
function somme(a,n,i:integer):real;
begin
if i>2*n-2 then
somme:=1
else
somme:=somme(a,n,i+2)+puis(a,i)/cos(i*a);
end;
begin
write('Donner a ');
readln(a);
write('Donner n ');
readln(n);
write('Somme=',somme(a,n,2));
end.
Bonne révision
Hanafi- Messages : 106
Date d'inscription : 25/10/2008
Récursivité bien aimé (:
Écrire une fonction récursive permettant de trouver
p+(p+1)+(p+2)+…+(p+n)
avec 0<p<1 et n>1
p+(p+1)+(p+2)+…+(p+n)
avec 0<p<1 et n>1
Hanafi- Messages : 106
Date d'inscription : 25/10/2008
Récursivité bien aimé (:
fonction calcul(p:reel;n:entier):reel
si n<1 alors
calcul :=p
sinon
calcul:=p+calcul(p,n-1)
fin calcul
Point d'arrêt : Si n = 0 Alors calcul <- p
Cas général : s <- calcul(p, n - 1)
calcul <- s + n + p
0) début fonction calcul(p:reel; n:entier):reel
1) si n=0 Alors
calcul <-p
sinon
s <- calcul(p, n-1)
calcul <- s+n+p
Finsi
2) fin calcul
ya3tik sa7a Yossef
Bonne chance pour demain
si n<1 alors
calcul :=p
sinon
calcul:=p+calcul(p,n-1)
fin calcul
Point d'arrêt : Si n = 0 Alors calcul <- p
Cas général : s <- calcul(p, n - 1)
calcul <- s + n + p
0) début fonction calcul(p:reel; n:entier):reel
1) si n=0 Alors
calcul <-p
sinon
s <- calcul(p, n-1)
calcul <- s+n+p
Finsi
2) fin calcul
ya3tik sa7a Yossef
Bonne chance pour demain
Youssef LABIDI- Messages : 5
Date d'inscription : 16/11/2008
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|