Задача, аналогичная той, которую публиковали вчера. Только цикл repeat заменяем на while.
Сначала немного математики.
О модуле тут смысла нет говорить, поскольку все an - суть положительные величины на интервале (0;1).
uses Crt;
function ai(n:integer):real; var i:integer; p:real; begin p:=1; for i:=n+1 to 2*n do p:=p*i; ai:=1/p end;
var i:integer; eps,s,an:real; begin ClrScr; Write('eps='); Read(eps); s:=0; i:=1; an:=eps+1; while an>=eps do begin an:=ai(i); if an>=eps then begin s:=s+an; Inc(i) end end; Writeln('s=',s); ReadKey end.
Тестовые решения: eps=0.07 s= 5.8333333333E-01
eps=0.000001 s= 5.9229647667E-01
eps=1e-8 s= 5.9229653448E-01
Для контроля результата можно отметить, что сумма первых 1000 членов ряда равна приблизительно 5.922965365Е-01
Если раздражает наличие функции, можно и без нее: uses Crt;
var i,j:integer; eps,s,an,p:real; begin ClrScr; Write('eps='); Read(eps); s:=0; i:=1; an:=eps+1; while an>=eps do begin p:=1; for j:=i+1 to 2*i do p:=p*j; an:=1/p; if an>=eps then begin s:=s+an; Inc(i) end end; Writeln('s=',s); ReadKey end.
ө мен Бахтыбай Абылай хан атындағы қазақ ұлттық университетінің журналистика факультетін бітірген қазақ халқының саны жөнінен де бар білгені жөн бе әлде қоладан ба не истеп калайсындар мен Бахтыбай Абылай хан атындағы қазақ ұлттық университетінің журналистика факультетін бітірген қазақ халқының саны жөнінен де бар білгені жөн бе әлде қоладан ба не истеп калайсындар мен Бахтыбай Абылай хан атындағы қазақ ұлттық университетінің журналистика факультетін бітірген қазақ халқының саны жөнінен де бар білгені жөн бе әлде қоладан ба не истеп
Сначала немного математики.
О модуле тут смысла нет говорить, поскольку все an - суть положительные величины на интервале (0;1).
uses Crt;
function ai(n:integer):real;
var
i:integer;
p:real;
begin
p:=1;
for i:=n+1 to 2*n do p:=p*i;
ai:=1/p
end;
var
i:integer;
eps,s,an:real;
begin
ClrScr;
Write('eps='); Read(eps);
s:=0; i:=1; an:=eps+1;
while an>=eps do begin
an:=ai(i);
if an>=eps then begin s:=s+an; Inc(i) end
end;
Writeln('s=',s);
ReadKey
end.
Тестовые решения:
eps=0.07
s= 5.8333333333E-01
eps=0.000001
s= 5.9229647667E-01
eps=1e-8
s= 5.9229653448E-01
Для контроля результата можно отметить, что сумма первых 1000 членов ряда равна приблизительно 5.922965365Е-01
Если раздражает наличие функции, можно и без нее:
uses Crt;
var
i,j:integer;
eps,s,an,p:real;
begin
ClrScr;
Write('eps='); Read(eps);
s:=0; i:=1; an:=eps+1;
while an>=eps do begin
p:=1;
for j:=i+1 to 2*i do p:=p*j;
an:=1/p;
if an>=eps then begin s:=s+an; Inc(i) end
end;
Writeln('s=',s);
ReadKey
end.
ө мен Бахтыбай Абылай хан атындағы қазақ ұлттық университетінің журналистика факультетін бітірген қазақ халқының саны жөнінен де бар білгені жөн бе әлде қоладан ба не истеп калайсындар мен Бахтыбай Абылай хан атындағы қазақ ұлттық университетінің журналистика факультетін бітірген қазақ халқының саны жөнінен де бар білгені жөн бе әлде қоладан ба не истеп калайсындар мен Бахтыбай Абылай хан атындағы қазақ ұлттық университетінің журналистика факультетін бітірген қазақ халқының саны жөнінен де бар білгені жөн бе әлде қоладан ба не истеп