Написать рекурсивную функцию нахождения 13-ого элемента последовательности - Free Pascal
Формулировка задачи:
Вот никак не поддаётся! Может кто поможет с решением?
Дана последовательность, заданная формулой общего члена и известно значение x0:
n = 1, 2, 3, ...
Для следующих значений параметра a, написать рекурсивную функцию нахождения 13-го члена последовательности:
a) a = 2
b) a = 30
c) a = -10
Решение задачи: «Написать рекурсивную функцию нахождения 13-ого элемента последовательности»
textual
Листинг программы
{$mode objfpc} uses sysutils, math; function f(n : integer; a : double) : double; begin if n = 0 then if a <= 1 then result := min(2*a, 0.95) else if a >= 25 then result := a / 25 else result := a / 5 else result := 4 * f(n - 1, a) / 5 + a / 5 / sqr(f(n - 1, a)); end; var values : array[0 .. 2] of integer = (2, 30, -10); v : integer; begin for v in values do writeln(format('a = %4d; x(13) = %7.3f', [v, f(13, v)])); end.
Объяснение кода листинга программы
Код представляет собой программу на языке Free Pascal, которая вычисляет 13-й элемент последовательности.
- Объявление функции
f(n : integer; a : double) : double
. - Проверка условия
n = 0
, при котором выполняется блок кода:- Если
a <= 1
, то результат вычисляется как минимальное значение из 2*a и 0.95. - Если
a >= 25
, то результат вычисляется какa / 25
. - В противном случае результат вычисляется как
a / 5
.
- Если
- Если условие
n = 0
не выполняется, то выполняется блок кода:- Результат вычисляется как 4 * f(n - 1, a) / 5 + a / 5 / sqr(f(n - 1, a)).
- Объявление переменной
values : array[0 .. 2] of integer
и присвоение ей значения (2, 30, -10). - Объявление переменной
v : integer
. - Цикл
for v in values
выполняющий следующие действия:- Вывод значения
v
и значения функцииf(13, v)
отформатированным выводом. Примечание: Значение 13 в функцииf(n : integer; a : double) : double
и в циклеfor v in values
является индексом для получения значения из массиваvalues
.
- Вывод значения
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д