Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні ОП.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
569.47 Кб
Скачать

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

Масиви - це набір даних одного типу. Кожний елемент масиву має свій номер, який називають його індексом.

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

Загальний вигляд конструкції опису багатовимірного масиву такий:

<тип> <ім’я масиву>[р1][р2]…[рN]

Кількість індексів визначають вимірність масиву.

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

Наприклад, оголосимо масив int doba[24][60]. Він містить елементи цілого типу і складається з 24 рядків і 60 стовпців. Нумерація індексів масиву розпочинається завжди з нуля.

Двовимірні масиви розглядаються завжди як послідовність одновимірних масивів. Тому до елементів двовимірного масиву, як і до одновимірних масивів, можна звертатися через вказівники. У такому випадку це вказівник на вказівник одновимірного масиву:

*(*(назва вказівника + зміщення порядках)+зміщення по стовпцях)

Наприклад, елемент*(*(doba+2)+15) розміщений на перетині 3-го рядка та 16-го стовпця.

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

Приклад.

Ініціюємо таку матрицю:

#define N 10

int matr[N][N]={1, 2, 3, -1, -2,-3, 10, 20, 30};

або, щоб не заплутатися в цифрах, значення можна згрупувати за допомогою додаткових дужок, наприклад,

int matr[N][N]= {{1, 2, 3}{-1, -2, -3}, {10, 20, 30}};

Нехай маємо масив:

#define N 10

int a[N][N];

Ввід масиву можна виконати, використовуючи таку конструкцію:

for (int і=0; і<N; і++)

for (int j=0; j<N; j++)

{

cout<<”\nВведіть елемент на позиції ”<<i+1<<”;”<<j+1;

cin>>a[i][j];

}

Вивід масиву можна виконати таким чином:

for (int і=0; і<N; і++)

{

for (int j=0; j<N; j++)

cout<<a[i][j]<<” ”;

cout<<”\n”;

}

Порядок виконання роботи:

  1. Створити алгоритм (блок-схему) та програму для розв’язування завдання з вашого варіанту.

  2. Відладити програму.

  3. Запустити програму на виконання і перевірити правильність роботи програми.

  4. Відповісти на контрольні запитання та оформити звіт.

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

  1. Що спільного і які відмінності між одновимірним і двовимірним масивами?

  2. Які є способи звернення до елементів двовимірного масиву?

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

  4. Як ініціалізується двовимірний масив?

  5. Як виділити пам’ять під двовимірний масив, якщо його розмірності задаються на етапі компіляції?

Звіт повинен містити:

  1. Мету, обладнання лабораторної роботи.

  2. Завдання згідно варіанту.

  3. Блок-схема

  4. Текст програми.

  5. Аналіз допущених під час роботи помилок.

  6. Відповіді на контрольні запитання

  7. Висновки.

Викладач Смерека А.Г.