Вычисление суммы рекурсивно и итеративно - Free Pascal

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

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

Помогите сделать программу. В понедельник сдавать, а мне еще 9 программ писать. Все мельком глянул, вот только эту не знаю как сделать. Задача: Разработать программу согласно алгоритму с использованием рекурсивной функции и без использования рекурсивной функции.

Решение задачи: «Вычисление суммы рекурсивно и итеративно»

textual
Листинг программы
program pr;
 
function f(n : integer) : integer;
begin
  if n = 0 then f := 0
  else f := (2*n - 1) + f(n - 1);
end;
 
var
  q, l, k: integer;
begin
  q := 0;
  writeln('Введите k');
  readln(k);
 
  writeln('Рекурсия: q = ', f(k));
 
  l := 1;
  repeat
    q := q + (2 * l - 1);
    l := l + 1;
  until l > k;
  writeln('Итерация: q = ', q);
end.

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

Список с пояснениями:

  1. Объявление функции f(n: integer) : integer;
    • Функция вычисляет сумму рекурсивно
    • Если n = 0, то возвращает 0
    • Иначе, возвращает (2*n - 1) + f(n - 1)
  2. Объявление переменных q, l, k: integer;
    • q инициализируется как 0
    • l инициализируется как 1
    • k запрашивается у пользователя
  3. Вывод сообщения Рекурсия: q = и значение q, вычисленное функцией f(k)
  4. Итерация с использованием цикла while
    • q увеличивается на (2 * l - 1)
    • l увеличивается на 1
    • Цикл повторяется до тех пор, пока l не станет больше k
  5. Вывод сообщения Итерация: q = и значение q, вычисленное в цикле

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


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

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

5   голосов , оценка 3.8 из 5
Похожие ответы