Рекуррентная формула - вычислить выражение - PascalABC.NET
Формулировка задачи:
Помогите вывести рекуррентную формулу, пожалуйста....
Решение задачи: «Рекуррентная формула - вычислить выражение»
textual
Листинг программы
var x,e,t,s:real;
i:integer;
begin
e:=0.0000001;
x:=2.12863;
i:=0;
t:=x;
while abs(t)/(2*i+1)>e do
begin
i:=i+1;
t:=t*x*x/(i+1); //рекуррентная часть A[n]=A[n-1]*x^2/(n-1)
s:=s+t/(2*i+1); //делим на не рекуррентную часть формулы
end;
write('s=',s:0:4);
end.
Объяснение кода листинга программы
- Объявлены четыре переменные: x, e, t, s (реальное число, число с плавающей точкой).
- Переменная i инициализируется значением 0 (целое число).
- Переменная t инициализируется значением x (реальное число).
- Задается условие цикла while, которое проверяет, что абсолютное значение t, деленное на (2*i+1), больше заданной точности e.
- В каждой итерации цикла значение переменной i увеличивается на единицу.
- Значение переменной t обновляется в соответствии с рекуррентной формулой A[n]=A[n-1]*x^2/(n-1), где A[n] - это значение переменной t в n-й итерации.
- Значение переменной s обновляется путем добавления значения переменной t, деленного на (2*i+1), к предыдущему значению переменной s.
- После окончания цикла выводится значение переменной s с точностью до четырех знаков после запятой.