Лабораторная работа № 12

Лабораторная работа №12.

Разработка программ с использованием функций и рекурсивных функций

Цель работы

Изучение принципов разработки программ с использованием функций и рекурсивных функций в языке Pascal.

Теоретические сведения

Функция в Pascal — это подпрограмма, которая возвращает некоторое значение.

Рекурсия — это механизм, при котором функция или процедура вызывает сама себя. При использовании рекурсии важно предусмотреть условие выхода, чтобы избежать бесконечной рекурсии.

Задания

Задание 1. Факториал числа

Написать рекурсивную функцию для вычисления факториала числа.

pascal

function fact(n: integer): integer;

begin

  if n <= 1 then

    fact := 1

  else

    fact := n * fact(n - 1);

end;

Задание 2. Сумма чисел

Написать рекурсивную функцию для вычисления суммы чисел от 1 до n.

pascal

function sumTo(n: integer): integer;

begin

  if n = 1 then

    sumTo := 1

  else

    sumTo := n + sumTo(n - 1);

end;

Задание 3. Степень числа

Написать рекурсивную функцию для возведения числа в степень.

pascal

function power(a, b: integer): integer;

begin

  if b = 0 then

    power := 1

  else

    power := a * power(a, b - 1);

end;

Задание 4. Числа Фибоначчи

Написать рекурсивную функцию для вычисления чисел Фибоначчи.

pascal

function fib(n: integer): integer;

begin

  if (n = 1) or (n = 2) then

    fib := 1

  else

    fib := fib(n - 1) + fib(n - 2);

end;

Задание 5. НОД методом Евклида

Написать рекурсивную функцию для нахождения НОД двух чисел.

pascal

function gcd(a, b: integer): integer;

begin

  if b = 0 then

    gcd := a

  else

    gcd := gcd(b, a mod b);

end;

Порядок выполнения работы

1.            Изучить теоретические сведения.

2.            Написать программы для каждого задания.

3.            Протестировать программы на различных входных данных.

4.            Оформить отчет.

Требования к отчету

1.            Титульный лист.

2.            Цель работы.

3.            Теоретические сведения.

4.            Листинги программ.

5.            Результаты тестирования.

6.            Ответы на контрольные вопросы.

Контрольные вопросы

1.            Что такое рекурсия и в чем её отличие от итерации?

2.            Какие условия необходимо предусмотреть при использовании рекурсии?

3.            В чем преимущества и недостатки рекурсивных функций?

4.            Как работает механизм возврата значений в рекурсивных функциях?

5.            Приведите примеры задач, которые удобно решать с помощью рекурсии.


Last modified: Saturday, 25 October 2025, 10:14 AM