Скачать презентацию Функції Функція це іменована послідовність описів та Скачать презентацию Функції Функція це іменована послідовність описів та

lek_5.ppt

  • Количество слайдов: 11

Функції Функція – це іменована послідовність описів та операторів, що виконує будьяку закінчену дію. Функції Функція – це іменована послідовність описів та операторів, що виконує будьяку закінчену дію. Функція може приймати параметри і повертати значення. Будь-яка функція повинна бути описана і визначена. опис функції повинен знаходитися в тексті програми раніше її виклику.

Опис функції (прототип, загаловок, сигнатура) задає її ім’я, тип значення, що повертає функція, список Опис функції (прототип, загаловок, сигнатура) задає її ім’я, тип значення, що повертає функція, список параметрів, що передаються у функцію (формальні параметри). Визначення функції містить, крім опису, тіло функції. [клас] тип ім’я ([список формальних параметрів]) [throw (виключення)] {тіло функції}

 • Клас дозволяє визначити область видимості функції: - extern (глобальна видимість у всіх • Клас дозволяє визначити область видимості функції: - extern (глобальна видимість у всіх модулях програми) за замовчуванням; - static (видимість тільки у межах даного модуля, в якому визначена функція) • Тип значення, що повертає функція може бути будь-яким крім масиву і функції (але може бути вказівником на масив чи функцію). Якщо функція значення не повертає, то вказується тип void. • Список параметрів визначає величини, які необхідно передати у функцію під час її виклику. Елементи в списку відокремлюються комами. Для кожного параметра вказується його тип і ім’я (в описі імена можна пропускати). • Виключення – це виникнення непередбаченої або аварійної ситуації, яка може бути викликана некоректним використання апаратури. Виключення С++ не підтримують обробку асинхронних подій. Механізм виключень у С++ служить лише для подій, які відбуваються в результаті роботи самої прграми і вказуються явним чином.

# include <iostream> using namespace std; int maximum (int, int); // прототип int main # include using namespace std; int maximum (int, int); // прототип int main () { int a, b, c; cin >> a >> b >> c; cout<< "Максимум" < max) max = y; if (z > max) max = z; return max; }

Якщо значення аргументів не відповідають типам параметрів у прототипі функції, то вони перетворюються у Якщо значення аргументів не відповідають типам параметрів у прототипі функції, то вони перетворюються у відповідний тип перед викликом функції. Типи даних long double float unsigned long int ( синонім unsigned long ) long int ( синонім long ) unsigned int ( синонім unsigned) int unsigned short int ( синонім unsigned short) short int ( синонім short) unsigned char

# include <iostream> using namespace std; void a(void); void b(void); void c(void); int x # include using namespace std; void a(void); void b(void); void c(void); int x = 1; main () { int x = 5; cout << x; { int x = 7; cout << x; } cout << x; a(); b(); c(); cout << x; return 0; void a (void) { int x = 25; cout << x; ++x; cout << x; } void b (void) { static int x = 50; cout << x; ++x; cout << x; } void c (void) { cout << x; x *= 10 ; cout << x; }

# include <iostream> using namespace std; void f (int a) { int m = # include using namespace std; void f (int a) { int m = 0; cout << "n m pn"; while (a--) { static int n = 0; int p = 0; cout << n++ << ' ' << m++ << ' ' << p++ <<'n'; } } int main() { f(3); f(2); return 0; }

Параметри функції Існує 2 способи предачі параметрів у функцію: за значенням і за адресою. Параметри функції Існує 2 способи предачі параметрів у функцію: за значенням і за адресою. При передачі за значенням у стек заносяться копії значень аргументів і оператори функції використовують ці копії. Доступа до початкових значень немає, і змінити їх неможливо. При предачі за адресою у стек заносяться копії адрес аргументів, а функція отримує доступ до пам’яті за цими адресами і може змінювати початкові значення арументів.

Під час передачі параметрів за допомогою посилань у функцію предається адреса параметра, а всередині Під час передачі параметрів за допомогою посилань у функцію предається адреса параметра, а всередині функції усі зверненння до параметра неявно розіменовуються. Використання посилань замість передачі за значенням ефективніше, так як не вимагає копівання параметрів. Якщо треба заборонити використання параметра всередині функції, то використовується модифікатор const: int f (const char*); char* t(char* a, const int* b);

# include <iostream> using namespace std; void f (int i, int* j, int& k); # include using namespace std; void f (int i, int* j, int& k); int main() { int i = 1, j = 2, k = 3; cout << "i j kn"; cout << i << j << k << 'n'; f(i, &j, k); cout << i << j << k << 'n'; return 0; } void f (int i, int* j, int& k) { i++; (*j)++; k++; }