Написать рекурсивную функцию нахождения суммы ряда - Turbo Pascal

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

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

1/(2*3)+2/(3*4)+..+п/(п+1)*(п+2)

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

textual
Листинг программы
function F(i : integer) : double;
begin
  if i < 1 then F := 0
  else
    F := i / ((i+1) * (i+2)) + F(i - 1);
end;

Объяснение кода листинга программы

  1. Создается функция F с одним параметром i типа integer.
  2. В условии if-else проверяется, является ли i меньше 1. Если это так, то функция возвращает 0.
  3. Если i больше или равно 1, то выполняется рекурсивный вызов функции F, передавая в нее значение i минус 1.
  4. Полученное значение i / ((i+1) * (i+2)) является суммой ряда, к которой добавляется значение F(i - 1).
  5. Результат сохраняется в переменной F.
  6. Вызывается функция F с аргументом i, равным 1.
  7. Выполняется рекурсивный вызов функции F с аргументом i, равным 0.
  8. Значение 0 добавляется к сумме ряда.
  9. Результат сохраняется в переменной F.
  10. Выполняется рекурсивный вызов функции F с аргументом i, равным -1.
  11. Значение 0 добавляется к сумме ряда.
  12. Результат сохраняется в переменной F.
  13. Выполняется рекурсивный вызов функции F с аргументом i, равным -2.
  14. Значение 0 добавляется к сумме ряда.
  15. Результат сохраняется в переменной F.
  16. Выполняется рекурсивный вызов функции F с аргументом i, равным -3.
  17. Значение 0 добавляется к сумме ряда.
  18. Результат сохраняется в переменной F.
  19. Выполняется рекурсивный вызов функции F с аргументом i, равным -4.
  20. Значение 0 добавляется к сумме ряда.
  21. Результат сохраняется в переменной F.
  22. И так далее, пока i не станет больше 1.

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


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

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

8   голосов , оценка 4.25 из 5