Приклад програми по обробці матриць
Рекомендації по написанню програм з використанням обробки масивів та матриць
Операції з елементами матриці
Де тип_елементів – це деякий стандартний тип (int, float), розмірність – кількість елементівмасиву. Індексація виконується з 0.
Основні теоретичні відомості
Завдання на лабораторну роботу
1. Ознайомитися з теоретичними відомостями даних методичних вказівок.
2. Скласти та виконати на ПЕОМ програми з таблиці 3.1 відповідно до варіанту.
3. Оформити звіт та захистити роботу.
Таблиця 3.1 – Індивідуальні завдання до лабораторної роботи №3
№ варіанта | Номери задач | № варіанта | Номери задач |
374б, 395, 692а, 674 | 389, 408, 692в, 694б | ||
374а, 400, 676б, 413а | 413а, 369, 393б, 383 | ||
374в, 397а, 692б, 675 | 387, 412б, 692и, 694в | ||
375, 397б, 412а, 678 | 410г, 370а, 393а, 384 | ||
379а, 412б, 692в, 679а | 388, 412в, 692к, 694г | ||
379б, 396, 405, 688 | 389, 412г, 693а, 694д | ||
379в, 412в, 692г, 679б | 390а, 409, 693б, 694е | ||
390г, 372, 394а, 376а | 410в, 370б, 394г, 385 | ||
379г, 412г, 692д, 376б | 390б, 378а, 410е, 694ж | ||
390б, 373б, 401а, 676а | 391, 378б, 691а, 694в | ||
410а, 371, 394б, 387 | 392, 410д, 691б, 694е | ||
379а, 403а, 692е, 687 | 419б, 370б, 394в, 386 | ||
390в, 373а, 402б, 376б | 413б, 368, 393в, 382 | ||
377, 403б, 692ж, 694а | 413в, 367, 393г, 381 |
Масив це – сукупність елементів одного типу. Масив об’являється наступним чином:
тип_елементів ім’я_масиву [розмірність];
При зверненні до елементу масива використовуються індекси:
for (i=0; i<n; i++) cout<<a[i];
У повсякденній практиці програміста нерідко доводиться мати справу з матрицею (двумірним масивом).
Матриця – це прямокутна (в частинному випадку - квадратна) таблиця чисел, що має M рядків та N стовпців.
Головна умова правильного розв'язання відповідних задач полягає в розумінні порядку змінювання індексів елементів матриці. Перший індекс завжди визначає номер рядка, другий — номер стовпця.
а) масив (матриця) повинний бути оголошений;
б) при оголошенні масиву (матриці) при задані розмірності зручно використовувати іменовані константи;
в) доступ до елемента масиву (матриці) здійснюється шляхом вказівки індексу (номера) елемента, у якості якого можна використовувати вираз цілого типу, наприклад, цілу константу чи змінну типу int;
г) для введення, виведення та обробки масивів зручно використовувати оператори циклів (for, while, do while);
д) для роботи з матрицями найчастіше треба використовувати вкладені цикли.
Опис матриці та введення даних до неї розглянемо на елементарному прикладі роботи з матриціями:
Завдання: В квадратній матриці з правого боку від побічної діагоналі знайти найбільший елемент і відповідний номер рядка.
# include <iostream.h>
const int M=5, N=5;
void main ()
{ int a[M][N];
int i, j, maxzn, nom;
cout <<”Введіть матрицю \n”;
for (i=0; i<M; i++)
for (j=0; j<N; j++)
cin >>a[i][j]; //Вводимо значення елементів масиву
maxzn=a[0][0];
nom=1;
for (i=0; i<M; i++)
for (j=N-i+1; j<N; j++)
if (maxzn<a[i,j])
{ maxzn=a[i,j];
nom=i; }
cout << “Початкова матриця \n”;
for (i=0; i<M; i++)
{ for (j=0; j<N; j++)
cout <<a[i,j];
cout << “\n”;}
cout << “max елемент=”<<maxzn<<“номер рядка=”<<nom;
}
Важливе місце в цій програмі займає організація внутрішнього циклу. При i=l змінна j приймає значення j=5, при i=2 індекс j буде змінюватись від 4 до 5, і так далі. При i=5 параметр j змінюється від 1 до 5. Такі значення індексів забезпечують перегляд всіх елементів, які розміщені на побічній діагоналі та з правого боку від неї.