Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-1 Программирование С++ / метод_лб_ пз_Інформатика.doc
Скачиваний:
5
Добавлен:
31.01.2021
Размер:
699.9 Кб
Скачать

Int main ( )

{

float y;

y = ft ( 20 , 2 , 2, 3.0, fn1 ) +ft ( 20, 0, 1.0, fn2 );

cout << "y=" << y << endl;

return 0;

}

Результат виконання програми :

y = 1.29012

5.2.4 Звертання до функції і передача результату

Для звертання до функції досить написати її ім'я й у дужках записати значення або перелік фактичних аргументів. Фактичні аргументи повинні бути записані в тій же послідовності, що і формальні і мати відповідний тип (крім аргументів за замовчуванням і перевантаженими функціями). Якщо формальними аргументами функції є параметри значення й у ній не використовуються глобальні змінні, то функція може передати в програмуб яка Ії викликає, лише одне значення, що записується в операторі return . Це значення передається в місце виклику функції. Фрагмент програми, що підтверджує вищевикладене може мати вигляд :

double sgr (double);

main( )

{

cout << "Квадрат числа=" << sgr ( 10 ) << endl;

}

double sqr (double p)

// Повернення за значенням

{

return p*p;

}

У результаті буде виведено:

Квадрат числа = 100.

Використовуючи оператор return можна також організувати достроковий вихід з функції. Якщо з функції треба передати не одне, а кілька значень, то можна або використовувати передачу параметрів за покажчиком, або використати посилання, глобальні змінні, або масиви.

Ім'я функції  це константа - покажчик на функцію, що вказує на адресу місця входу (адреса першої машинної команди) функції. Слід зазначити, що можливо також опис і покажчиків перемінних на функції. Для цього використовується операція разіменувания "*", функції описані в такий спосіб повинні повертати покажчик на тип, тобто його адреса.

Приклад 5.5 Обчислити функцію загального вигляду для заданого значення аргументу x з використанням функції, у яку коефіцієнти a, b і c можуть бути введені за замовчуванням.

// P5_5.CPP обчислення квадратної функції

// коефіцієнти квадратної залежності можуть

// вводитися у функцію "за замовчуванням"

#include < iostream >

using namespace std;

float ur ( float x, float а=0., floatb b =0.,float c=0.);

Int main ( )

{

float а =1., b = 2., c = 3., x = 0.5, y;

cout << " Уведені всі аргументи " << endl;

y = ur ( x, a, b, c);

cout << " y = "<< y << endl;

cout << " Введені аргументи x, a, b " << endl;

y =ur ( x, a, b);

cout << " y = "<< y << endl;

cout << " Введений аргумент x " << endl;

y =ur ( x );

cout << " y = "<< y << endl;

}

// Функція обчислення квадратної функції

float ur ( float x, float a, float b, float c );

{

return a * x * x + b * x + c;

}

Результати виконання програми:

Уведено всі аргументи

y = 4.25

Уведені x, a і b

y = 1.25

Введено аргумент x

y = 0

5.2.5 Перевантаження функцій

У мові С++ можна використовувати перевантаження функцій, тобто можливість визначати функції з одним ім'ям, але з різним типом і кількістю формальних параметрів.

Основне достоїнство перевантажених функцій  це можливість визначати кілька функцій з тим самим ім'ям, але з різними типами і числом параметрів.

Приклад 5.6. Зробити програмну реалізацію з використанням перевантаження функцій.

#include <string.h>

#include < iostream >

using namespace std;

int funp (int x) // 1.

{ return x*x; }

int funp (unsigned x) // 2.

{ return -x*x; }

char funp (char x) // 3.

{ return x+3; }

int funp (int x, char *y) // 4.

{ return x*strlen ( y); }

int funp (int x , char y) // 5.

{ return x*y; }

float funp (float r) // 6.0

{ return r*r; }

float funp (double r) // 7.

{ return r+r; }