Calcul d'une double somme
Bonjour,
Je cherche à calculer Sum_{1<=i,j<=n i#j} 1/|i-j| en pascal.
Voilà mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| Program somme;
function calcul(n:integer):real;
var i,j:real; S:Real;
begin
S:=0;
i:=1;
j:=1;
while i<=n do
begin
while j<=n do
begin
if j<>i then S:=S+(1/abs(i-j));
j:=j+1;
end;
i:=i+1;
end;
calcul:=S;
end;
var n:integer;
begin
writeln('Entrez un entier');
readln(n);
writeln('Le resultat est',calcul(n));
readln;
end. |
Il est compile mais m'affiche un résultat qui ne correspond pas.
Par exemple pour n=3 il m'affiche 1.5 alors que je devrais obtenir 5. En fait tout se passe comme si seule la 2ème boucle s'exécutait.
EDIT j'ai trouvé il fallait remettre j à 1 en fin de boucle.
Merci ;)