Тема: прога...
Показать сообщение отдельно
  #2  
Старый 15.10.2007, 22:03
Аватар для robonuk
robonuk robonuk вне форума
Прохожий
 
Регистрация: 03.10.2007
Сообщения: 13
Репутация: 10
Злость

Ну для начала зачем каждый цикл умножать на -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.
Ответить с цитированием