Написать рекурсивную функцию нахождения 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-й элемент последовательности.

  1. Объявление функции f(n : integer; a : double) : double.
  2. Проверка условия n = 0, при котором выполняется блок кода:
    • Если a <= 1, то результат вычисляется как минимальное значение из 2*a и 0.95.
    • Если a >= 25, то результат вычисляется как a / 25.
    • В противном случае результат вычисляется как a / 5.
  3. Если условие n = 0 не выполняется, то выполняется блок кода:
    • Результат вычисляется как 4 * f(n - 1, a) / 5 + a / 5 / sqr(f(n - 1, a)).
  4. Объявление переменной values : array[0 .. 2] of integer и присвоение ей значения (2, 30, -10).
  5. Объявление переменной v : integer.
  6. Цикл for v in values выполняющий следующие действия:
    • Вывод значения v и значения функции f(13, v) отформатированным выводом. Примечание: Значение 13 в функции f(n : integer; a : double) : double и в цикле for v in values является индексом для получения значения из массива values.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы