русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


ЛАБОРАТОРНА РОБОТА № 2


Дата додавання: 2014-11-28; переглядів: 761.


ПОБУДОВА|ШИКУВАННЯ| РЕКУРСИВНИХ ФУНКЦІЙ

Мета. Отримати тримати практичні навички навички побудови рекурсивних функцій

на С++.

Короткі теоретичні відомості

Функції в С++ слугують для запису програмного коду безпосередньо розв’язуваних|рішати| підзадач. Виконання програми завжди починається з функції main(). Коли під час виконання програми зустрічається ім'я функції, відбувається|походить| звернення до цієї функції, тобто керування передається функції. Після того, як функція виконала свою роботу, керування повертається в те місце, звідки функція була викликана|спричинена|.

У С/С++ код, що описує, роботу функції, називається визначенням функції і має вигляд:

Заголовок_функции

{

оператор

}

Заголовок функції містить

тип_функции имя_функции(список аргументів)

Тип функції - (будь-який стандартний або абстрактний тип даних) визначає тип єдиного значення, яке повертає функція. Для повернення значення з функції слугує оператор return :

return значення;

У тому випадку, якщо функція не повертає жодного значення, її тип визначається ключовим|джерельним| словом void, і оператор return не використовується.

Рекурсивною називається функція, яка викликає|спричиняє| сама себе. Загальний|спільний| синтаксис оформлення рекурсивної функції:

тип_функции имя_функции (список аргументів)

{

.

<умова завершення рекурсії>

}

Прототип функції – це оголошення функції, але|та| не її визначення. Функція може бути оголошена до того, як вона визначена, і до того, як вона використовується, а визначення| може йти пізніше у цьому ж самому файлі, вибиратися з|із| бібліотеки або вказаного користувачем файла.

Приклад. Написати рекурсивні функції визначення n! і .

#include <iostream.h>

#include <conio.h>

unsigned factor_n(int ); // прототип функції визначення n!

// опис функції визначення xn

float multy_x_n(float x, int n)

{

if(n>1) // умова продовження рекурсії

return x*multy_x_n(n-1); // рекурсивний виклик функції

else // умова зупинки рекурсії

return x; //повернення значення під час останнього виклику функцією

//самої себе

}

// головна функція

void main(void)

{ int n;

float x;

cout<<"\nУведіть значення n для визначення n!:";

cin>>n;

cout<<"n!= "<<factor_n(n)<<endl;

cout<<" Уведіть|запровадьте| значення х і n для визначення x^n: ";

cin>>x>>n;

cout<<"x^n= "<<multy_x_n(x,n);

getch();

}

//опис функції обчислення|підрахунку| n!

unsigned long factor_n(int n)

{ if(n>1) return n*factor_n(n-1);

else return 1;

}


<== попередня лекція | наступна лекція ==>
Приклад виконання лабораторної роботи №1 | Приклад виконання лабораторної роботи №2


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн