Рекурсивная функция: вычислить сумму ряда - Pascal

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

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

Нужна помощь с написанием программы(Рекурсивная функция).

Решение задачи: «Рекурсивная функция: вычислить сумму ряда»

textual
Листинг программы
function fact(n:integer):integer;
begin
  if (n = 1) then 
  begin
    fact:= 1;
    exit;
  end;
  fact:= n * fact(n - 1);
end;
 
function sigma(i, n:Integer):real;
var buf:real;
begin
  buf:= i * i * (i + 1) / fact(i);
  if (i mod 2 = 1) then
    buf:= -buf;
  if (i = n) then
  begin
    sigma:= buf;
    exit;
  end;
  sigma:= buf + sigma(i + 1, n);
end;
 
var n:Integer;
    rez:real;
 
begin
  writeln('Введите n:');
  read(n);
  writeln('Искомая сумма: ', sigma(1, n));
end.

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

  1. Объявляется функция fact с одним целочисленным параметром n и возвращаемым значением типа integer.
  2. Внутри функции fact проверяется, если n равно 1, то устанавливается значение для fact равным 1 и происходит выход из функции.
  3. В противном случае переменной fact присваивается значение n умноженное на результат вызова функции fact с аргументом n - 1.
  4. Объявляется функция sigma с двумя целочисленными параметрами i и n и возвращаемым значением типа real.
  5. Внутри функции sigma объявляется переменная buf типа real.
  6. В переменную buf записывается значение i * i * (i + 1) / fact(i).
  7. Если остаток от деления i на 2 равен 1, значение buf умножается на -1.
  8. Проверяется, если i равно n, то устанавливается значение для sigma равным buf и происходит выход из функции.
  9. В противном случае переменной sigma присваивается значение buf плюс результат вызова функции sigma с аргументами i + 1 и n.
  10. Объявляется переменная n типа Integer и переменная rez типа real.
  11. Вводится значение для переменной n.
  12. Выводится результат вызова функции sigma с аргументами 1 и n.

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


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

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

14   голосов , оценка 3.786 из 5