Ну для начала зачем каждый цикл умножать на -1/2, когда в условие
сумму надо умножить на 1/2 и то всего один раз??? (Мож я не так понял)
Цитата:
Sn:=Exp(N*ln(2))*(An*An-Bn*Bn)*(-0.5);
|
Далее Это ЧТо?
Цитата:
s:=sn*(-0.5);
writeln sn;
|
А тут ты сначало присваеваешь An :=..., а потом от получившегося
An Считаешь Bn...(хотя необходимо было ввести ещё одну переменную:
Z := An;
An:=0.5*(An+Bn);
Bn:=Sqrt(Z*Bn);
А что у тебя
Цитата:
An:=0.5*(An+Bn);
Bn:=Sqrt(An*Bn);
|
Короче хрен знает мож это я не понимаю ничё
(не судите строго)
Вот переделал:
Код:
program summa_r9da;
uses crt;
const
e = 0.000001;
var
S : real;
A : real;
B : real;
Z : real;
n : integer;
begin
clrscr;
S :=0;
n :=0;
A := 3;
B := 2;
repeat
S := S + exp(n*ln(2))*(A*A-B*B);
Z := A;
A := (A+B)/2;
B := sqrt(Z*B);
inc(n);
until (A*A-B*B)<=e;
S := S/2;
write(' Summa r9da = ',S);
readkey;
end.