Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_Lab_OP_2_v2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
872.96 Кб
Скачать
      1. Контрольні питання

    1. Дати означення масиву та типу масиву.

    2. Якими є головні властивості масивів даних?

    3. Як здійснюється доступ до елементів одновимірного масиву?

    4. Чи може список ініціалізації масиву містити більше (менше) значень, ніж вказано в оголошенні масиву?

    5. Які базові операції обробки одновимірних масивів?

    6. Де застосовується операція переставлення елементів масиву?

    1. Багатовимірні масиви

Мета роботи - вивчити особливості організації роботи з багатовимірними масивами, зокрема, матрицями.

      1. Теоретичні відомостi

        1. Обробка матриць

У загальному випадку масив може містити компоненти будь-якого типу, зокрема, також масиви. Формат оголошення такого масиву у С++:

тип ім'я[кількість_1][кількість_2].

Такий масив можна трактувати подвійно: як масив, що складається з декількох масивів, або як один двовимірний масив (матрицю).

Наприклад,

int a[2][3]; - a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2]

Матриці, як і масиви можна визначати. Наприклад,

int d[2][3] = {{3,5,7},{4,3,1}}.

Особливості визначення:

  1. кількість рядків матриці при оголошенні може бути опущена (визначається кількістю елементів в списку початкових значень), наприклад,

int m[][2]={3,5,7,1};

  1. якщо початкових значень менше, ніж елементів у матриці, всі інші елементи автоматично ініціалізуються 0, наприклад,

int m[3][2]={3,5,7}  3 5

7 0

0 0

int m[2][3]={{3},{5,7}}  3 0 0

5 7 0

Доступ до окремого елемента матриці, зазвичай, здійснюється за наступним форматом:

ім'я_матриці[індекс_1][індекс_2].

Наприклад, А[5][19].

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

int m[3][2];

int *p;

p = &m[0][0];

p++; //перехід до наступного елемента.

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

В оперативній пам’яті матриця зберігається як безперервна послідовність елементів. При цьому компонента з найменшим значенням індексу розміщується за найменшою адресою (самий правий індекс елементів багатовимірних масивів зростає найпершим). Наприклад, елементи масиву

int A[5][4];

в оперативній пам’яті будуть розміщені у такий спосіб:

A[0][0],...,A[0][3],A[1][0],...,A[1][3],...,A[4][0],...,A[4][3].

Обробка елементів матриць виконується у вкладених циклах for.

        1. Масиви-параметри

Масиви (як одновимірні, так і багатовимірні) можуть бути параметрами підпрограм.

У С++ передача масиву у функцію здійснюється тільки за адресою. Можливі формати оголошення масивів-параметрів:

тип *ім'я_покажчика;

тип ім'я_масива[];

тип ім’я[][кількість].

Розмір одновимірного масиву-параметру вказувати не обов’язково. При передачі у функцію багатовимірного масиву розмірності усіх індексів, окрім першого, треба вказувати обов’язково.

Особливості передачі масивів-параметрів:

  1. Для параметра-масива, що може мати різну розмірність, треба передавати два параметри - покажчик на масив (ім’я масиву) і кількість його елементів, наприклад,

const int n=9,m=7;

int mas1[n],mas2[m];

float f_3(int arr[],int r)

{ ...

}

main()

{ cout << f_3(mas1,n) <<" "<< f_3(mas2,m);

}

  1. Для заборони модифікації значень параметра-масива використо-вується специфікація const, наприклад,

int mas[9];

float f_4(const int arr[])

{ ...

}

main()

{ cout << f_4(mas);

}

  1. Окремі елементи масиву передаються у функцію за значенням.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]