- •1.1.2 Структура функцій програми
- •1.1.3 Правила синтаксису
- •1.1.4. Типи даних
- •1.1.5. Функції введення та виведення даних
- •1.2 Приклад програми Умова задачі
- •Особливості використання функцій вводу та виводу
- •1.3 Технологія виконання лабораторної роботи
- •1.4. Варіанти завдань
- •1.5 Контрольні запитання
- •Розгалужені обчислювальні процеси Лабораторна робота 2
- •2.1 Теоретичні відомості
- •2.1.1. Вибір із двох альтернатив
- •2.1.2. Вкладеність конструкцій вибору
- •2.1.3. Операторний блок
- •2.1.4. Поліваріантний вибір
- •2.2. Приклади програм
- •2.3. Варіанти завдань
- •2.4 Контрольні запитання
- •Циклічні обчислювальні процеси Лабораторна робота 3
- •3.1 Теоретичні відомості
- •3.1.1. Цикл із передумовою
- •3.1.2. Цикл із постумовою
- •3.1.3. Цикл із лічильником
- •3.1.4. Переривання та продовження циклу
- •3.2. Приклад алгоритму та програми
- •3.3. Варіанти завдань
- •3.4 Контрольні запитання
- •Цикли з розгалуженням Лабораторна робота 4
- •4.1 Теоретичні відомості
- •4.1.1. Рекурентні співвідношення
- •4.1.2. Функції користувача
- •4.2. Приклад алгоритму та програми
- •Алгоритм задачі
- •Код програми
- •4.3. Варіанти завдань
- •4.4 Контрольні запитання
- •Рекурсивні функції Лабораторна робота 5
- •5.1 Теоретичні відомості
- •5.2. Приклад алгоритму та програми
- •5.3. Варіанти завдань
- •6.1.2. Оголошення та ініціалізація
- •6.1.3. Операції над покажчиками
- •6.1.4. Методи розв’язанні нелінійних рівнянь
- •6.2. Приклад алгоритму та програми
- •6.3. Варіанти завдань
- •6.4 Контрольні запитання
- •Одновимірні масиви Лабораторна робота 7
- •7.1 Теоретичні відомості
- •7.2. Приклад алгоритму та програми
- •Алгоритм програми
- •Код програми
- •7.3. Варіанти завдань
- •7.4 Контрольні запитання
- •Багатовимірні масиви Лабораторна робота 8
- •8.1 Теоретичні відомості
- •8.1.1. Оголошення багатовимірних масивів. Доступ до елементів
- •8.1.2. Базові операції обробки двовимірних масивів
- •8.2. Приклад алгоритму та програми
- •8.3. Варіанти завдань
- •9.1.2. Деякі функції обробки рядків
- •9.2. Приклад алгоритму та програми
- •9.3. Варіанти завдань
- •9.4 Контрольні запитання
- •Структури та масиви структур Лабораторна робота 10
- •10.1 Теоретичні відомості
- •10.2. Приклад алгоритму та програми
- •Алгоритм задачі
- •Приклад коду
- •10.3. Варіанти завдань
- •10.4 Контрольні запитання
7.4 Контрольні запитання
-
Дати означення масиву та типу масиву.
-
Якими є властивості масивів даних?
-
Яким є принцип зображення масиву в оперативній пам’яті?
-
Як здійснюється доступ до елементів одновимірного масиву?
-
Чи може список ініціалізації масиву містити більше (менше) значень, ніж вказано в оголошенні масиву?
-
Які базові операції обробки одновимірних масивів?
-
Чим відрізняються методи сортування масивів?
-
Приведить найшвидший та найповільніший алгоритми сортування масивів.
-
Чим відрізняються алгоритми пошуку в упорядкованому та неупорядкованому масивах?
-
Як повернути масив із функції?
-
Що означає подвійний покажчик на одновимірний масив?
Багатовимірні масиви Лабораторна робота 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; }