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

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

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

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

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

textual
Листинг программы
  1. program pr;
  2.  
  3. function f(n : integer) : integer;
  4. begin
  5.   if n = 0 then f := 0
  6.   else f := (2*n - 1) + f(n - 1);
  7. end;
  8.  
  9. var
  10.   q, l, k: integer;
  11. begin
  12.   q := 0;
  13.   writeln('Введите k');
  14.   readln(k);
  15.  
  16.   writeln('Рекурсия: q = ', f(k));
  17.  
  18.   l := 1;
  19.   repeat
  20.     q := q + (2 * l - 1);
  21.     l := l + 1;
  22.   until l > k;
  23.   writeln('Итерация: q = ', q);
  24. 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

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

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

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