- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main() //головна функція
- •Int main()
- •Int main() //головна функція
- •Int main()
- •Int main()
- •Int main()
- •Int main() //головна функція
- •Int main()
- •Int main()
- •Int main() //головна функція
- •Int main()
- •Int main()
- •Int main ()
- •Int main()
- •Int main ()
- •Int main()
- •Int main ()
- •Int main()
- •Int main()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Void main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Void main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
Int main()
{
cout<<"Overload function"<<endl;
cout<<"Enter float arg for sqr(): ";
cin>>arg_float;
cout<<"sqr("<<arg_float<<")="<<sqr(arg_float)<<endl;
cout<<"Enter integer arg for sqr(): ";
cin>>arg_int;
cout<<"sqr("<<arg_int<<",2)="<<sqr(arg_int,2)<<endl;
system("pause");
}
/* Демонстрація вбудованих перевантажених функцій */
#include <iostream>
#include <math.h>
using namespace std;
int arg_int; //числа квадрати яких розраховується
float arg_float;
//================== визначення квадрата дійсного числа ==============
inline float sqr(float x)
{
return x*x;
}
//================= визначення квадрата чілого числа ================
inline int sqr(int x, int exponent)
{
return x*x;
}
//======================== головна функція ===========================
Int main()
{
cout<<"Overload function"<<endl;
cout<<"Enter float arg for sqr(): ";
cin>>arg_float;
cout<<"sqr("<<arg_float<<")="<<sqr(arg_float)<<endl;
cout<<"Enter integer arg for sqr(): ";
cin>>arg_int;
cout<<"sqr("<<arg_int<<",2)="<<sqr(arg_int,2)<<endl;
system("pause");
}
Приклад 4.8
/* Демонстрація використання шаблонів функції */
#include <iostream>
#include <stdio.h>
using namespace std;
int n, m, //вихідні числа, що впорядковують
maxi, mini; //максимальні та мінімальні значення
char cn, cm, cmaxi, cmini;
double dn, dm, dmaxi,dmini;
//шаблон функції визначення максимального значення
template<class T>
T MAX(T a, T b)
{
if(a>b) return a; else return b;
}
//шаблон функції визначення мінімального значення
template<typename T>
T MIN(T a, T b)
{
if(a<b) return a; else return b;
}
//============================ головна функція =============================
Int main()
{
cout<<"Function template: calculate max, min"<<endl;
cout<<"Enter two integer numbers "<<endl;
cin>>n>>m;
//застосування шаблонів для даних цілого типу
maxi=MAX(n, m); mini=MIN(n, m);
cout<<"max="<<maxi<<" min="<<mini<<endl;
cout<<"Enter two double numbers "<<endl;
cin>>dn>>dm;
dmaxi=MAX(dn, dm); dmini=MIN(dn, dm) ;
//застосування шаблонів для даних дійсного типу
cout<<"max="<<dmaxi<<" min="<<dmini<<endl;
cout<<"Enter two char symbol"<<endl;
cin>>cn>>cm;
//застосування шаблонів для символьних даних
cmaxi=MAX(cn, cm); cmini=MIN(cn, cm);
cout<<"max="<<cmaxi<<" min="<<cmini<<endl;
system("pause");
}
Приклад 4.9
/* Обчислення факторіала числа */
#include <iostream>
using namespace std;
int x; //число, факторіал якого необхідно обчислити
int F(int n) //функція обчислення факторіала числа
{
if (n == 0) return 1; //вихід з рекурсії
else return F(n-1)*n; //рекурсивний виклик функції
}
Int main() //головна функція
{
cout<<"Calculate factorial"<<endl;
cout<<"Enter x "<<endl; //ввести число
cin>>x;
cout<<"x!="<<F(x)<<endl; //обчислити його факторіал
system("pause");
}
Приклад 4.10
/* Ханойські вежі */
#include <iostream>
using namespace std;
int n; // кількість дисків
//============================ ініціалізація даних ======================
void Init()
{
cout<<"Hanoy towers"<<endl;
cout<<"Enter number of disk"<<endl;
cin>>n;
cout<<"Transport process:"<<endl;
}
//========================== перенесення дисків =========================
void Move(int i, char from, char temp, char on)
{ //i-кількість дисків;from,temp,on назви стрижнів
if(i>0) //перенести один диск та вийти із функції
{ //перенести і-1 дисків із вхідного стрижня на проміжний
Move(i-1,from,on,temp);
//перенести найбільший диск із вхідного стрижня на цільовий
cout<<"Move disk "<<i<<" from "<<from<<" to "<<on<<endl;
//перенести i-1 дисків із проміжного стрижня на цільовий
Move(i-1,temp,from,on);
}
}
//==================== головна функція ========================================
