Bonjour,

Je cherche à calculer Sum_{1<=i,j<=n i#j} 1/|i-j| en pascal.

Voilà mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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