Курсовая работа: Розробка програм мовою С++
cout << endl << "Введіть ціле додатне число";
cin >> n;
for (i = 0; i< = n; i++)
cout << endl << " Факторіал " << i << "!=" << factorial(i);
return;
}
unsigned long factorial (unsigned int num);
{if (n = = 1 ¦¦ n = = 0)
return 1;
else
return (num*factorial(num-1));
}
Рекурсивні функції обробляються повільно й займають більше стекової пам’яті, ніж їхні нерекурсивні еквіваленти. Надто велика кількість рекурсивних викликів функції може призвести до переповнення стека. Оскільки місцем зберігання параметрів і локальних змінних функції є стек, і кожен новий виклик створює нову копію змінних, простір стека може бути вичерпаний, це викличе помилку переповнення і призведе до аварійної зупинки програми.
1.8 Вбудовані функції
Вбудовані функції (inline) — це функції, чиє тіло підставляється в кожну точку виклику, замість того, щоб генерувати код виклику. Модифікатор inline перед вказівкою типу результату в оголошенні функції загадує компілятору згенерувати копію коду функції у відповідному місці, щоб уникнути виклику цієї функції. У результаті виходить множина копій коду функцій, вставлених у програму, замість єдиної копії, якою передається керування при кожному виклику функції. Модифікатор inline необхідно застосовувати для невеликих і часто використовуваних функцій. Наприклад,
#include <iostream.h>
inline int min (int x1, int y1)
{ if (x1 < y1)
return (x1);
else
return (y1);
}
void main( )
{ int х, у, z;
{ cout << endl << "Введіть два цілих числа ";
cin >> х >> у;
z = min(х, у);
cout << endl << " Мінімальним з " << х << " і " << у << " є "
<< z;