Лабораторна робота №03(20).
Робота з числовими матрицями
Мета роботи: ознайомлення зі структурами даних, зокрема з двовимірними числовими масивами (матрицями); набуття навичок роботи з числовими матрицями у програмах C/C++.
Теоретичні основи.
Масив може мати два або й більше вимірів. Такі масиви називаються
багатовимірними.
Найбільш розповсюдженим на практиці є використання двовимірних масивів або так званих матриць. Елементи таких масивів запам’ятовуються рядок за рядком. Можна вважати, що двовимірний масив є масивом одно- вимірних масивів (підмасивів).
Так, наприклад, після оголошення у програмі матриці дійсних чисел: int x[3][4];
розташування її елементів x[i][j] буде відповідати наступній таблиці:
-
x[0][0]
x[0][1]
x[0][2]
x[0][3]
x[1][0]
x[1][1]
x[1][2]
x[1][3]
x[2][0]
x[2][1]
x[2][2]
x[2][3]
де перший індекс i є номером рядка, а другий j – номером стовпця (індек- сація кожного з вимірів починається з нуля).
У пам’яті комп’ютера елементи такого масиву розташується наступ- ним чином: x[0][0], x[0][1], x[0][2], x[0][3], x[1][0], x[1][1], x[1][2], x[1][3],
x[2][0], x[2][1], x[2][2], x[2][3] і займають 24 (12×2) байт пам’яті.
Ініціалізувати такий масив можна в один із наступних способів:
або
float x[3][4]={0.0,0.1,0.2,0.3,1.0,1.1,1.2,1.3,2.0,2.1,2.2,2.3};
float x[3][4]=
{
{0.0,0.1,0.2,0.3},
{1.0,1.1,1.2,1.3},
{2.0,2.1,2.2,2.3}
};
де, наприклад, вираз x[1][2] відповідає значенню 1.2.
До речі, в оголошенні багатовимірного масиву дозволяється залиша- ти порожніми перші квадратні дужки, тобто опускати розмірність найста ршого виміру, наприклад:
float x[][4]={0.0,0.1,0.2,0.3,1.0,1.1,1.2,1.3,2.0,2.1,2.2,2.3};
У цьому випадку кількість рядків матриці обчислюється як частка від ді- лення кількості даних (у даному прикладі їх дванадцять) на відому кіль- кість елементів у кожному рядку матриці (у даному прикладі – чотири).
Матриця може складатися з одного рядка, або з одного стовпця, або навіть мати лише один елемент. В останньому випадку оголошення та іні- ціалізація матриці може виглядати, наприклад, наступним чином:
int x[1][1]={100};
Для доступу до елементів багатовимірного масиву застосовується класична індексна форма звертання, тобто вказавши в окремих квадратних дужках значення індексу для кожного з вимірів, наприклад:
або
x[1][2]=(a+b)/c;
int i,j,n=3,m=4; for(i=0;i<n;i++)
for(j=0;j<m;j++)
printf("%f ",x[i][j]);
В останньому прикладі розглянуто код виведення на екран дванадцяти дій- сних чисел – елементів двовимірного масиву.
Введення-виведення двовимірних масивів
Здійснювати введення-виведення значень елементів масиву можна лише поелементно, для чого слід організовувати цикли, в яких послідовно змінюватимуться значення індексів елементів.
