Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Method_Lab_Work_ANSI_C__2010_lab1-10_v2.doc
Скачиваний:
39
Добавлен:
22.11.2018
Размер:
1.14 Mб
Скачать

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

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

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

  3. Яким є принцип зображення масиву в оперативній пам’яті?

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

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

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

  7. Чим відрізняються методи сортування масивів?

  8. Приведить найшвидший та найповільніший алгоритми сортування масивів.

  9. Чим відрізняються алгоритми пошуку в упорядкованому та неупорядкованому масивах?

  10. Як повернути масив із функції?

  11. Що означає подвійний покажчик на одновимірний масив?

Багатовимірні масиви Лабораторна робота 8

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

8.1.1. Оголошення багатовимірних масивів. Доступ до елементів

Синтаксис оголошення змінної матричного типу в мовах С/C++:

<тип елементів> <ім’я матриці> [<кількість рядків>][<кількість стовпців>];

У цьому оголошенні <тип елементів> — будь- який тип даних, окрім файлового типу; <ім’я матриці> — деякий ідентифікатор; <кількість рядків> і <кількість стовпців> — константи, що визначає розмірність матриці. Межі діапазону допустимих значень індексів рядків і стовпців визначаються значеннями від 0 до <кількість рядків>–1 та від 0 до <кількість стовпців>–1. Масиви, що мають більш ніж два виміри, оголошуються в аналогічний спосіб.

Доступ до елементів матриці здійснюється операцією індексування [] за двома індексами, які визначають номер рядка та номер стовпця елемента. Синтаксис операції індексування є таким:

<ім’я масиву>[<номер рядка>][<номер стовпця>]

8.1.2. Базові операції обробки двовимірних масивів

Перелік базових операцій над матрицями та їх елементами:

  • створення нової матриці за заданим алгоритмом;

  • введення та виведення матриць;

  • пошук елементів матриці за певним критерієм;

  • визначення, чи задовольняє матриця або окремі її елементи певній властивості;

  • виконання певних операцій над компонентами матриць (переставлення рядків і стовпців, множення матриць тощо).

Введення матриці:

int a[5][5]; int main(){ for(int i=0;i<5;i++) //зовнішній цикл по рядках for(int j=0;j<5;j++) //внутрішній цикл по стовпцях cin>>a[i][j]; //із клавіатури елементи } //вводяться через символ пробілу

Під час виведення матриці переводити курсор на новий рядок слід лише після виведення всіх елементів поточного рядка:

for(int i=0;i<5;i++) { for(int j=0;j<5;j++) cout<<a[i][j]<<" "; //вивести елементи рядка cout<<endl; //перевести курсор на новий рядок }

Ініціалізація елементів матриці деякими значеннями:

int a[5][5]; int main(){ for(int i=0;i<5;i++) for(int j=0;j<5;j++) a[i][j]=10; // альтернативи: a[i][j]=rand()%20; // a[i][j]=i*j; тощо }

Пошук значення та індексів максимального елемента матриці:

max=a[0][0]; //початкове значення максимального елемента for( int i=0;i<n;i++) for( int j=0;j<n;j++) if ( max < a[i][j]) { max=a[i][j]; //запам’ятати максимальний елемент imax=i; //та його індекси jmax=j; }

Перестановка рядків або стовпців

for(i=0;i<n;i++) //цикл по рядках { tmp=a[i][0]; //альтернатива для цілих значень: a[i][0]=a[i][4]; //a[i][4]^=a[i][0]^=a[i][4]^=a[i][0]; a[i][4]=tmp; }

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