Лабораторна робота №8 Рекурсивні функції Мета роботи : отримати навички роботи з рекурсивними функціями. Теоретичні icon

Лабораторна робота №8 Рекурсивні функції Мета роботи : отримати навички роботи з рекурсивними функціями. Теоретичні



НазваниеЛабораторна робота №8 Рекурсивні функції Мета роботи : отримати навички роботи з рекурсивними функціями. Теоретичні
Дата конвертации15.07.2013
Размер24.8 Kb.
ТипЛабораторна робота
скачать >>>



Лабораторна робота №8
Рекурсивні функції




Мета роботи: отримати навички роботи з рекурсивними функціями.

8.1. Теоретичні відомості



В інженерній практиці приходиться іноді програмувати рекурсивні алгоритми. Така необхідність виникає при реалізації динамічних структур даних, таких як стеки, дерева, черги. Для реалізації рекурсивних алгоритмів у С++ передбачена можливість створення рекурсивних функцій. Рекурсивна функція являє собою функцію, у тілі якої здійснюється виклик цієї ж функції.

8.2. Приклад



Використання рекурсивної функції для обчислення факторіала.

Нехай потрібно скласти програму для обчислення факторіала будь-якого додатного числа.

#include

int fact(int n);

void main()

{

int m;

cout << "\nВВедіть ціле число:";

cin >> m;

cout << "\n Факторіал числа " << m << " дорівнює " << fact (m) ;

}

int fact(int n)

{

int a;

if (n<0) return 0;

if (n==0) return 1;

a =n * fact(n-1);

return a;

}


Для від’ємного аргументу факторіала не існує, тому функція в цьому випадку повертає нульове значення. Так як факторіал 0 дорівнює 1 за означенням, то в тілі функції передбачений і цей варіант. У випадку коли аргумент функції fact() відмінний від 0 та 1, то викликаємо функцію fact() із зменшеним на одиницю значенням параметра і результат множиться на значення поточного параметра. Таким чином, у результаті вбудованих викликів функцій повертається наступний результат:

n * (n-l) * (n-2) * . . . * 2 * 1 * 1

Остання одиниця при формуванні результату належить виклику fact(0).

8.3. Порядок виконання роботи



8.3.1. Проаналізувати умову задачі.

8.3.2. Розробити алгоритм та створити програму розв’язання задачі згідно з номером варіанту.

8.3.3. Результати роботи оформити протоколом.

8.4. Варіанти завдань



Написати рекурсивні функції для розв’язання наступних задач.

  1. Піднести до додатного цілого степеня дійсне ненульове число.

  2. Знайти суму n членів арифметичної прогресії із заданим початковим членом та кроком.

  3. Знайти суму n членів геометричної прогресії із заданим початковим членом та кроком.

Завдання підвищеної складності:

1) Дано натуральні числа ; знайти . Використати програму, що вміщує рекурсивну процедуру обчислення , що базується на співвідношенні , де — залишок від ділення на . (НСD — найбільший спільний дільник.)

2) Дано натуральні числа . Отримати , де

— залишок від ділення на 10. Використати програму, що містить в собі рекурсивну функцію обчислення .

3) Дано невід'ємні числа ; обчислити , де

(Це так звана функція Аккермана.) Використати програму, що включає рекурсивну функцію.

8.5. Контрольні запитання



1. Вкажіть особливості опису рекурсивних функцій.

2. Охарактеризуйте математичні функції.

3. У якому файлі розміщуються прототипи математичних функцій?



Похожие:

Лабораторна робота №8 Рекурсивні функції Мета роботи : отримати навички роботи з рекурсивними функціями. Теоретичні iconЛабораторна робота №5 Функції Мета роботи : отримати навички роботи з функціями. Теоретичні
Кожна програма у своєму складі повинна мати головну функцію main(). Саме функція main() забезпечує створення точки входу в об’єктний...
Лабораторна робота №8 Рекурсивні функції Мета роботи : отримати навички роботи з рекурсивними функціями. Теоретичні iconЛабораторна робота №9 Передача масивів у функції Мета роботи: отримати навички роботи з масивами у функціях. Теоретичні
Масиви можуть бути параметрами функцій, і функції як результат можуть повертати вказівник на масив. Розглянемо ці можливості
Лабораторна робота №8 Рекурсивні функції Мета роботи : отримати навички роботи з рекурсивними функціями. Теоретичні iconЛабораторна робота №7 Вказівники та посилання. Динамічні масиви Мета роботи : отримати навички роботи з вказівниками, посиланнями та динамічними масивами. Теоретичні
Мета роботи: отримати навички роботи з вказівниками, посиланнями та динамічними масивами
Лабораторна робота №8 Рекурсивні функції Мета роботи : отримати навички роботи з рекурсивними функціями. Теоретичні iconЛабораторна робота №10 Робота з рядками (string) Мета роботи : отримати навички роботи з рядками. 10 Теоретичні
В с++ з'явилася дуже корисна бібліотека роботи з рядками. Вона досить ефективна І дозволяє легко вирішувати наступні задачі
Лабораторна робота №8 Рекурсивні функції Мета роботи : отримати навички роботи з рекурсивними функціями. Теоретичні iconЛабораторна робота №2 Умовна операція та множинний вибір Мета роботи : отримати навички роботи з умовною операцією та оператором множинного вибору. Теоретичні
Мета роботи: отримати навички роботи з умовною операцією та оператором множинного вибору
Лабораторна робота №8 Рекурсивні функції Мета роботи : отримати навички роботи з рекурсивними функціями. Теоретичні iconЛабораторна робота №3 Цикл while з передумовою та постумовою Мета роботи : Отримати навички роботи з циклом while Теоретичні
При виконанні програми часто виникає необхідність неодноразового повторення однотипних обчислень над різними даними. Для цих цілей...
Лабораторна робота №8 Рекурсивні функції Мета роботи : отримати навички роботи з рекурсивними функціями. Теоретичні iconЛабораторна робота №1 Принципи програмування на С++ Мета роботи : отримати навички роботи з типами даних та виразами. Теоретичні
Кожна програма на С++ у своєму складі повинна мати головну функцію main(). Саме функція main() забезпечує створення точки входу в...
Лабораторна робота №8 Рекурсивні функції Мета роботи : отримати навички роботи з рекурсивними функціями. Теоретичні iconЛабораторна робота №4 Цикл for мета роботи : отримати навички роботи з циклом for. Теоретичні
При цьому виконуються три операції: ініціалізація лічильників циклів, порівняння його значення з деяким граничним значенням і зміна...
Лабораторна робота №8 Рекурсивні функції Мета роботи : отримати навички роботи з рекурсивними функціями. Теоретичні iconЛабораторна робота №6 Масиви Мета роботи : отримати навички роботи з одно та багатовимірними масивами. Теоретичні
Масив являє собою набір однотипних об’єктів, які мають спільне ім’я і відрізняються місцезнаходженням в цьому наборі (або індексом,...
Лабораторна робота №8 Рекурсивні функції Мета роботи : отримати навички роботи з рекурсивними функціями. Теоретичні iconЛабораторна робота 1 Тема. Класи та об’єкти. Мета роботи: засвоїти основні поняття об’єктно-орієнтованого програмування на прикладі мови програмування С++. Теоретичні
Основні поняття, потрібні для виконання роботи. Це 1 класи; 2 область доступу; 3 ієрархія класів
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©gua.convdocs.org 2000-2015
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов