Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОПАМ.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
327 Кб
Скачать
☆

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);

}

}

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