Написать рекурсивную функцию нахождения суммы ряда - 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;
Объяснение кода листинга программы
- Создается функция F с одним параметром i типа integer.
- В условии if-else проверяется, является ли i меньше 1. Если это так, то функция возвращает 0.
- Если i больше или равно 1, то выполняется рекурсивный вызов функции F, передавая в нее значение i минус 1.
- Полученное значение i / ((i+1) * (i+2)) является суммой ряда, к которой добавляется значение F(i - 1).
- Результат сохраняется в переменной F.
- Вызывается функция F с аргументом i, равным 1.
- Выполняется рекурсивный вызов функции F с аргументом i, равным 0.
- Значение 0 добавляется к сумме ряда.
- Результат сохраняется в переменной F.
- Выполняется рекурсивный вызов функции F с аргументом i, равным -1.
- Значение 0 добавляется к сумме ряда.
- Результат сохраняется в переменной F.
- Выполняется рекурсивный вызов функции F с аргументом i, равным -2.
- Значение 0 добавляется к сумме ряда.
- Результат сохраняется в переменной F.
- Выполняется рекурсивный вызов функции F с аргументом i, равным -3.
- Значение 0 добавляется к сумме ряда.
- Результат сохраняется в переменной F.
- Выполняется рекурсивный вызов функции F с аргументом i, равным -4.
- Значение 0 добавляется к сумме ряда.
- Результат сохраняется в переменной F.
- И так далее, пока i не станет больше 1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д