МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
|||||||
Лекція № 9Тема: Передача параметрів у функцію. Мета: Навчитися передавати параметри у функцію різними способами. Питання: 1. Поняття масиву, як параметру функції. 2. Передача параметрів по значенню. 3. Передача параметра по посиланню або з використанням параметра-покажчика.
Як аргументи (параметрів) функцій можуть бути не тільки змінні, але й масиви. У цьому випадку можна використати як масиви фіксованого розміру, так і невизначеного (масиви змінної довжини). При використанні масивів фіксованої довжини в заголовку функції в списку формальних аргументів указується тип масиву і його розмір, наприклад: vоid sort (int mas [ 30 ]); . Якщо описується функція з масивом змінної довжини, то в заголовку вказується тип масиву невизначеного розміру, і обов'язково ще один параметр, за допомогою якого задається розмірність масиву, наприклад: void sort ( int mas [ ], int n ) ; . Всі масиви у функції передаються за адресою (як покажчики), тому у випадку зміни масивів у функції , ці зміни зберігаються при поверненні в зухвалу функцію. Приклад Привести приклад програмної реалізації , у якій відбувається передача символьного масиву у функцію . //P5_2.CPP – використання масивів – параметрів функцій #include < iostream.h > #include < string.h > void fun1 (char st [ 5]); main ( ) { char p[5] ="стіл "; fun1 (p); cout << "p=" << p << endl; // p="стілець " return 0; } void fun1 ( char st [5] ) { cout <<"p=" << st << endl; // стіл strcpy (st, "стілець "); }
Як параметри функцій можна використати не тільки одномірні, але й багатомірні масиви. При цьому використаються масиви як фіксованої розмірності , так і невизначеної довжини. При використанні багатомірного масиву фіксованого розміру в заголовку функції вказуються значення розмірності масиву, наприклад: void fun1 (int mat [7][10]); // використається матриця mat(7,10) Якщо використається багатомірний масив невизначеної довжини, то невизначеним може бути тільки один вимір розмірності, що повинне бути першим, наприклад: void fun2 ( int mat [ ] [10], int rows, int cols ); Приклад Для заданої матриці зробити обчислення середнього значення кожного її стовпця з використанням функції уведення розмірності матриці, функції уведення матриці й функції одержання середнього значення стовпців. // P5_3.CPP – обчислення середнього значення // кожного стовпця матриці #include <iostream .h> const int mincol = 1; const int maxcol = 20; const int minrow = 2; const int maxrow = 30; //Функція getnum ( ) для уведення кількості рядків і стовпців int getnum (const char *elemtype , int low , int high ) { int n; do { cout << " Уведіть кількість " << elemtype << " N від [" << low << "] до [" << high << " ] : "; cin >> n; } while (( n<low) || (n>high)); return n; } // Функція inmatr ( ) уведення елементів матриці void inmatr ( float matr [ ] [maxcol], int rows , int cols); { for (int i =0; i<rows; i++) { cout << "Уведіть"<< i << "рядок матриці " << endl; for ( int j =0; j < cols ; j++) cin >> matr [i][j]; } cout << endl; }
// Функція srcols ( ) одержання середніх значень стовпців void srcols ( float matr [ ] [maxcol] , int rows , int cols ) { float sum , sr; for ( int j = 0; j < cols; j++ ) { sum =0.0; for ( int i = 0; i < rows; i++) sum += matr [i][j]; sr = sum / rows; cout << "середнє значення стовпця" << j << " = " << sr << endl; } } // Головна програма int main ( ) { float matr [maxrow] [maxcol]; int rows, cols; // Уведення кількості рядків і стовпців rows = getnum ( "rows", minrow, maxrow ); cols = getnum ( "colnums" , mincol , maxcol); // Уведення матриці inmatr ( matr, rows , cols); // Обчислення середнього значення стовпців матриці srcols (matr , rows , cols); return 0; } Читайте також:
|
||||||||
|