Курсовая работа: Розробка програм мовою С++

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;

К-во Просмотров: 503
Бесплатно скачать Курсовая работа: Розробка програм мовою С++