Написать рекурсивную функцию нахождения 13-ого элемента последовательности - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Вот никак не поддаётся! Может кто поможет с решением? Дана последовательность, заданная формулой общего члена и известно значение x0: n = 1, 2, 3, ... Для следующих значений параметра a, написать рекурсивную функцию нахождения 13-го члена последовательности: a) a = 2 b) a = 30 c) a = -10

Решение задачи: «Написать рекурсивную функцию нахождения 13-ого элемента последовательности»

textual
Листинг программы
  1. {$mode objfpc}
  2. uses sysutils, math;
  3.  
  4. function f(n : integer; a : double) : double;
  5. begin
  6.   if n = 0 then
  7.     if a <= 1 then result := min(2*a, 0.95)
  8.     else if a >= 25 then result := a / 25
  9.     else result := a / 5
  10.   else
  11.     result := 4 * f(n - 1, a) / 5 + a / 5 / sqr(f(n - 1, a));
  12. end;
  13.  
  14. var
  15.   values : array[0 .. 2] of integer = (2, 30, -10);
  16.   v : integer;
  17. begin
  18.   for v in values do
  19.     writeln(format('a = %4d; x(13) = %7.3f', [v, f(13, v)]));
  20. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы