Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Лекція № 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;

}


Читайте також:

  1. Вид заняття: лекція
  2. Вид заняття: лекція
  3. Вид заняття: лекція
  4. Вид заняття: лекція
  5. Вид заняття: лекція
  6. Вступна лекція
  7. Вступна лекція 1. Методологічні аспекти технічного регулювання у
  8. Клітинна селекція рослин.
  9. Колекція фонограм з голосами осіб, які анонімно повідомляли про загрозу вибуху
  10. ЛЕКЦІЯ (4): Мануфактурний період світової економіки
  11. Лекція - Геополітика держави на міжнародній арені
  12. Лекція 02.04.2013




Переглядів: 538

<== попередня сторінка | наступна сторінка ==>
Лекція №8 | Використання функції як параметра значень

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.004 сек.