Алгоритм на языке PASCAL выглядит следующим образом.
{Вычисление суммы последовательности}
const n=10;
var s, a: real;
i: byte;
Begin
{Начальная установка}
a:=0; s:=a;
for i:=1 to n do begin
a:=a+1/i;
s:=s+a
end;
writeln (‘сумма=’,s:10:4);
End.
Для n = 10 имеем S = 22.2187.
Алгоритм в Excel выглядит следующим образом.
n= | |||
Решение | |||
№ п\п | ai | si | control |
=1/A4 | =B4 | =ЕСЛИ(A4=$B$1;"otvet") | |
=A4+1 | =B4+1/A5 | =C4+B5 | =ЕСЛИ(A5=$B$1;"otvet") |
=A5+1 | =B5+1/A6 | =C5+B6 | =ЕСЛИ(A6=$B$1;"otvet") |
=A6+1 | =B6+1/A7 | =C6+B7 | =ЕСЛИ(A7=$B$1;"otvet") |
=A7+1 | =B7+1/A8 | =C7+B8 | =ЕСЛИ(A8=$B$1;"otvet") |
=A8+1 | =B8+1/A9 | =C8+B9 | =ЕСЛИ(A9=$B$1;"otvet") |
=A9+1 | =B9+1/A10 | =C9+B10 | =ЕСЛИ(A10=$B$1;"otvet") |
=A10+1 | =B10+1/A11 | =C10+B11 | =ЕСЛИ(A11=$B$1;"otvet") |
=A11+1 | =B11+1/A12 | =C11+B12 | =ЕСЛИ(A12=$B$1;"otvet") |
=A12+1 | =B12+1/A13 | =C12+B13 | =ЕСЛИ(A13=$B$1;"otvet") |
=A13+1 | =B13+1/A14 | =C13+B14 | =ЕСЛИ(A14=$B$1;"otvet") |
=A14+1 | =B14+1/A15 | =C14+B15 | =ЕСЛИ(A15=$B$1;"otvet") |
=A15+1 | =B15+1/A16 | =C15+B16 | =ЕСЛИ(A16=$B$1;"otvet") |
=A16+1 | =B16+1/A17 | =C16+B17 | =ЕСЛИ(A17=$B$1;"otvet") |
=A17+1 | =B17+1/A18 | =C17+B18 | =ЕСЛИ(A18=$B$1;"otvet") |
=A18+1 | =B18+1/A19 | =C18+B19 | =ЕСЛИ(A19=$B$1;"otvet") |
Задача 2. Вычислить значение функции , заданной в виде ряда Тейлора .
|
|
Разделив член последовательности на , имеем
.
Следовательно, общий член последовательности будет вычисляться по рекуррентной формуле
, ).
Определим переменные, используемые в алгоритме для решения задачи:
n – индекс последнего члена последовательности;
i - индекс текущего(ей) члена(суммы) последовательности;
x – значение ;
mn – значение ;
s – текущая сумма последовательности, результат;
a – текущий член последовательности;
f – вспомогательная переменная.