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

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

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

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

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

textual
Листинг программы
  1. function fact(n:integer):integer;
  2. begin
  3.   if (n = 1) then
  4.   begin
  5.     fact:= 1;
  6.     exit;
  7.   end;
  8.   fact:= n * fact(n - 1);
  9. end;
  10.  
  11. function sigma(i, n:Integer):real;
  12. var buf:real;
  13. begin
  14.   buf:= i * i * (i + 1) / fact(i);
  15.   if (i mod 2 = 1) then
  16.     buf:= -buf;
  17.   if (i = n) then
  18.   begin
  19.     sigma:= buf;
  20.     exit;
  21.   end;
  22.   sigma:= buf + sigma(i + 1, n);
  23. end;
  24.  
  25. var n:Integer;
  26.     rez:real;
  27.  
  28. begin
  29.   writeln('Введите n:');
  30.   read(n);
  31.   writeln('Искомая сумма: ', sigma(1, n));
  32. 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

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

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

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