Проверьте пожалуйста задачу которую я решил в паскале, так как я изучаю паскаль очень мало времени и самостоятельно!!!
Задача: Составьте программу для вычисления суммы ряда S=1/2²+3/4²+5/6²+7/8²+9/10²+... с точностью до члена ряда, не превышающего по абсолютной величине 0.001.
Решение:
Var s,h,d:real;
i:integer;
begin
d:=0.001;
s:=0;
i:=0;
repeat
i:=i+1;
h:=((2*i)-)1/sqr(2*i);
s:=s+h;
until h<d;
writeln('Сумма ряда: ',s:10:10);
writeln('Количество членов ряда: ',i);
readln;
end.
Ответ выдаваемый программой:
Сумма ряда: 2.1272298361
Количество членов ряда: 91
P.S. Знаю пока тока один циклический оператор, так что если можно будет её решить короче и быстрее прошу написать как ещё можно её решить, если вам будет не трудно!!
Заранее огромное спасибо!!!
Какой минус?
Формула из вашего решения, только правильно расставлены скобки.
это решение не моё, h:=(2*i-1) вот этот минус?
В числителе стоит арифметическая прогрессия с первым членом,равным 1 и разностью, равной 2. Следовательно, i-тый член последовательности будет таким:
a[i]=a[1]+(i-1)*d=1+(i-1)*2=2*i-1,
что и стоит в программе.
а если сделать шаг не 1 а 2 то и не надо будет умножать i на 2
Ты имеешь ввиду сделать i:=i+2? тогда h:=i-1/sqr(i) и ответ выдаваемый программой будет:
Сумма ряда: 2.5356700972
Количество членов ряда: 182
ТАК КАКОЙ ЖЕ ПРАВЕЛЬНЫЙ????
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)