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

4 Контрольні запитання:

4.1 Що розуміється під структурою?

4.2 Як позначаються в програмі елементи структури?

4.3 Як описуються структури в розділі змінних?

4.4 Як організовується в програмі введення структур?

4.5 Як організовується в програмі виведення структур?

4.6 Поясніть різницю в доступі до полів структури за допомогою операцій „точка” та „стрілочка”?

Практична робота 4

Тема. Робота з масивами за допомогою функцій

Мета: закріпити основні відомості, вивчені на лекції – поняття функцій, визначення, призначення та оголошення функцій, правила роботи з масивами за допомогою функцій.

Виконання

  1. Короткі теоретичні відомості

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

Описання функції у загальному вигляді має наступний формат:

[ клас ] тип ім'я ([ список _ параметрів ]) { тіло функції }

Тип функції визначається типом параметрів, які вона повертає.

У визначенні, оголошенні та при виклику однієї і тієї ж функції список та порядок параметрів має співпадати.

Механізм параметрів є основним способом обміну інформацією між функцією, що викликає, та функцією, яку викликають. Існує два способи передачі параметрів в функцію – за значенням та за адресою .

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

  1. Розглянемо програми, що використовують масиви в якості параметрів

Приклад 1. Функція підраховує суму елементів одномірного масиву. Кількість елементів масиву (розмірність) є константною величиною.

#include <iostream.h>

int sum(const int* mas, const int n); // оголошення функції

int const n = 10;

int main(){

int marks[n] = {3, 4, 5, 4, 4}; // ініціалізація масиву явним чином

cout « "Сума елементів масиву: " « sum(marks, n);// виклик функції

return 0;}

int sum(const int* mas, const int n){ // визначення функції

int s = 0;

for (int i = 0; i<n; i++) s += mas[i];

return s; }

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

#include <iostream.h>

int sum(int **a, const int nstr, const int nstb);

int main(){

int nstr, nstb;

cin » nstr » nstb;

int **a, i, j;

// Формування матриці а:

a = new int* [nstr];

for (i = 0; i<nstr; i++)

a[i] = new int [nstb];

for (i = 0; i<nstr; i++)

for (j = 0; j<nstb; j++)cin » a[i][j]:

cout « sum(a, nstr, nstb);

return 0;

}

int sum(int **a, const int nstr, const int nstb){

int i, j, s = 0;

for (i = 0; i<nstr; i++)

for (j = 0; j<nstb; j++)

s += a[i][j];

return s; }

Звільнення пам'яті повинне виконуватися у зворотному порядку.

  1. Завдання: оформити дії над масивами в вигляді функцій за варіантом. Всі необхідні дані мають передаватися у функцію в якості параметрів.

Варіант 1

Дана прямокутна цілочисельна матриця. Визначити:

  1. кількість рядків, що не мають жодного нульового елементу;

  2. максимальне з чисел, що зустрічаються в цій матриці більше одного разу.

Варіант 2

Дана прямокутна цілочисельна матриця. Визначити:

  1. кількість стовпчиків, що мають хоча б один нульовий елемент;

  2. номер рядка, в якому знаходиться найбільше однакових елементів.

Варіант 3

Дана прямокутна цілочисельна матриця. Визначити:

  1. добуток елементів в тих рядках, що не містять від’ємних елементів;

  2. знайти суму модулів елементів головної діагоналі.

Варіант 4

Дана прямокутна цілочисельна матриця. Визначити:

1) суму елементів в тих стовпчиках, які не мають від’ємних елементів;

2) знайти кількість рядків, середнє арифметичне елементів яких менше заданої величини.

Варіант 5

Дана прямокутна цілочисельна матриця. Визначити:

  1. кількість рядків, що не мають жодного нульового елементу;

  2. суму елементів в тих стовпчиках, що мають тільки додатні елементи.

Варіант 6

Дана прямокутна цілочисельна матриця. Визначити:

1) кількість рядків, що мають хоча б один нульовий елемент;

2)знайти номер першого з стовпчиків, що не містить жодного від’ємного елементу.

Варіант 7

Дана прямокутна цілочисельна матриця. Визначити:

1) знайти номер першого з рядків, що не містить жодного додатного елементу;

2) максимальне з чисел, що зустрічаються в цій матриці більше одного разу.

Варіант 8

Дана прямокутна цілочисельна матриця. Визначити:

1) суму елементів матриці;

2) максимальне з чисел, що зустрічаються в цій матриці не менше 2 разів.

Варіант 9

Дана прямокутна цілочисельна матриця. Визначити:

1)суму модулів елементів матриці;

2)номер першого від’ємного елементу матриці.

Варіант 10

Дана прямокутна цілочисельна матриця. Визначити:

1) кількість рядків, що не мають жодного нульового елементу;

2) номер першого стовпчика, що містить тільки додатні елементи.