Алгоритмізація обробки одновимірних та двовимірних масивів
Мета: Ознайомитись із структурованим типом даних – масивом, навчитись складати алгоритми обробки одновимірних та двовимірних масивів.
ТЕОРЕТИЧНІ ВІДОМОСТІ
Масив – це впорядкована індексована сукупність однотипних елементів, що мають спільне ім’я. Елементами масиву можуть бути дані різних типів. Кожен елемент масиву однозначно визначається ім’ям та індексами (для одновимірного масиву – індексом).
Кількість елементів масиву – розмірність, кількість дозволених значень кожному елементу – діапазон, сукупність розмірності та діапазону – форма масиву. Номер елемента масиву – індекс.
Над елементами масиву можна виконувати такі дії: введення, присвоєння, виведення, всі інші дії, визначені над даними відповідного типу.
Робота з масивами складається з трьох етапів:
Усі етапи виконуються з використанням циклів.
Одновимірний масив (лінійний масив, лінійна таблиця, вектор) – це лінійно впорядкована сукупність елементів одного й того самого типу. Кожному елементу одновимірного масиву відповідає один індекс.
Одновимірний масив А(n)
А1 |
А2 |
А3 |
… |
Аn |
А1, А2, …Аn – елементи масиву
Двовимірний масив – це прямокутна таблиця, матриця. Кожному елементу двовимірного масиву відповідає два індекси.
Двовимірний масив A(n,m)
А11 |
А12 |
A13 |
... |
А1m |
А21 |
А22 |
A23 |
… |
А2m |
A31 |
A32 |
A33 |
… |
A3m |
… |
… |
… |
… |
… |
Аn1 |
Аn2 |
An3 |
… |
Аnm |
Людина опрацьовує таблиці візуально: одного погляду на таблицю достатньо, щоб відповісти на запитання, у який день була найнижча температура у квітні чи хто з учнів отримав «2» за контрольну роботу.
Комп’ютер так робити не може. Він опрацьовує дані в масиві методом перегляду усіх елементів із метою відшукання потрібних. Перевага комп’ютера – він переглядає та аналізує дані швидко і може опрацьовувати великі масиви даних, що зазвичай людині не під силу.
Основні прийоми опрацювання масивів:
Типові алгоритми опрацювання масивів:
ОБРОБКА ОДНОВИМІРНИХ МАСИВІВ
Приклад 1
Скласти блок-схему алгоритму знаходження суми всіх додатних елементів масиву, значення яких зчитати з клавіатури. Розмірність масиву – N елементів. Результат обробки вивести на екран.
Розв’язок
Блок-схема алгоритму зображена на рис. 1.
Рис. 1. Блок-схема алгоритму 1
Приклад 2
Скласти блок-схему алгоритму знаходження кількості від’ємних елементів, що розташовані на парних номерах масиву М. Розмірність масиву – 10 елементів.
Розв’язок
Блок-схема алгоритму зображена на рис. 2.
Приклад 3
Скласти блок-схему алгоритму знаходження мінімального елемента масиву М та вказати його номер. Розмірність масиву – 20 елементів.
Розв’язок
Блок-схема алгоритму зображена на рис. 3.
Рис. 2. Блок-схема алгоритму 2 Рис. 3. Блок-схема алгоритму 3
ОБРОБКА ДВОВИМІРНИХ МАСИВІВ
Приклад 4
Скласти блок-схему алгоритму визначення кількість від’ємних елементів в кожному рядку масиву цілих чисел розмірністю 4x5 (4 рядки і 5 стовпчиків). Елементи масиву генеруються випадковим чином. Результат вивести на екран.
Розв’язок
Блок-схема алгоритму зображена на рис. 4.
Рис. 4. Блок-схема алгоритму 4
Завдання
Скласти блок-схеми розв’язку задач обробки одновимірних та двовимірних масивів згідно варіанта.
Обробка одновимірних масивів
Рівень А
Задано одновимірний масив . Заповнити масив значеннями, зчитаними з клавіатури. Вивести елементи масиву, виконати необхідну обробку масиву та вивести результат перетворень згідно варіанта (див. таб.1)
Таблиця 1. Варіанти завдань
№ |
Завдання |
1 |
Знайти кількість парних та кількість нульових елементів. |
2 |
Визначити кількість парних елементів масиву і скільки серед них від’ємних. |
3 |
Знайти середнє арифметичне значення елементів масиву. |
4 |
Знайти кількість від’ємних елементів масиву. |
5 |
Знайти кількість елементів, більших від заданого числа К, яке зчитане з клавіатури. |
6 |
Підрахувати скільки нульових елементів і вказати їх номери в масиві. |
7 |
Знайти кількість елементів, зчитаних з клавіатури, значення яких знаходяться в діапазоні від N до М. |
8 |
Знайти максимальний елемент масиву та вказати його номер. |
9 |
Знайти мінімальний елемент масиву та вказати його номер. |
10 |
Для всіх елементів масиву, що мають парні номери, поміняти знак числа на протилежний. |
11 |
Кожний елемент, що має парне значення, зменшити вдвічі. |
12 |
Знайти кількість елементів, які більші за перший елемент масиву. |
13 |
Знайти кількість елементів, які менші за останній елемент масиву. |
14 |
Знайти суму елементів на непарних номерах масиву. |
15 |
Знайти кількість від’ємних елементів на парних номерах. |
16 |
Знайти мінімальний елемент масиву та вказати його номер. |
17 |
Знайти кількість елементів, зчитаних з клавіатури, значення яких знаходяться в діапазоні від N до М |
18 |
Знайти кількість від’ємних елементів масиву. |
19 |
Знайти кількість елементів, які менші за останній елемент масиву. |
20 |
Знайти кількість парних та кількість нульових елементів. |
21 |
Визначити кількість парних елементів масиву і скільки серед них від’ємних. |
22 |
Знайти кількість елементів, які більші за перший елемент масиву. |
23 |
Кожний елемент, що має парне значення, зменшити вдвічі. |
24 |
Знайти максимальний елемент масиву та вказати його номер. |
25 |
Знайти кількість елементів, більших від заданого числа К, яке зчитане з клавіатури. |
Рівень Б
Задано одновимірний масив . Заповнити масив випадковим чином. Вивести елементи масиву на екран, виконати необхідну обробку масиву та вивести результат перетворень згідно варіанта (див. таб.2).
Таблиця 2. Варіанти завдань
№ |
Завдання |
1 |
З'ясувати, в якій половині масиву більша сума елементів. |
2 |
Знайти різницю модулів між сумами додатних та від’ємних елементів. |
3 |
Знайти кількість додатних на парних номерах та кількість від’ємних на непарних номерах масиву. |
4 |
Порівняти яка з сум за модулем більша - до першого додатного елементу чи до першого від’ємного елемента. |
5 |
Знайти кількість елементів масиву, значення яких більші за середнє значення та кількість елементів, значення яких менше за середнє значення масиву. |
6 |
З’ясувати яких елементів в масиві більше - парних чи непарних. |
7 |
Зменшити значення елементів масиву, які більші за середнє значення та збільшити значення елементів масиву, які менші за середнє значення на величину цього середнього значення. |
8 |
Визначити яка з сум більша - парних додатних чи непарних від’ємних. |
9 |
Визначити яких елементів більше - парних на парних номерах чи непарних на непарних номерах. |
10 |
Знайти номери максимального додатного та максимального від’ємного елементів. |
11 |
Знайти найбільшу та найменшу різницю між двома сусідніми елементами і вказати номери цих елементів. |
12 |
Визначити який з елементів - максимальний чи мінімальний знаходиться ближче до середини масиву. |
13 |
Знайти кількість нульових елементів та перемістити їх в кінець масиву. |
14 |
Визначити в скільки разів кількість додатних елементів в першій половині масиву більша кількості від’ємних елементів в другій половині масиву. |
15 |
Кожен елемент масиву зменшити в кількість разів, що відповідає різниці між максимальним та мінімальним його елементами. |
16 |
Знайти кількість додатних на парних номерах та кількість від’ємних на непарних номерах масиву. |
17 |
Знайти кількість елементів масиву, значення яких більші за середнє значення та кількість елементів, значення яких менше за середнє значення масиву. |
18 |
З'ясувати, в якій половині масиву більша сума елементів. |
19 |
Зменшити значення елементів масиву, які більші за середнє значення та збільшити значення елементів масиву, які менші за середнє значення на величину цього середнього значення. |
20 |
Визначити яких елементів більше - парних на парних номерах чи непарних на непарних номерах. |
21 |
Визначити який з елементів - максимальний чи мінімальний знаходиться ближче до середини масиву. |
22 |
З’ясувати яких елементів в масиві більше - парних чи непарних. |
23 |
Кожен елемент масиву зменшити в кількість разів, що відповідає різниці між максимальним та мінімальним його елементами. |
24 |
Визначити яка з сум більша - парних додатних чи непарних від’ємних. |
25 |
Порівняти яка з сум за модулем більша - до першого додатного елементу чи до першого від’ємного елемента. |
Рівень В
Задано одновимірний масив(и). Заповнити масив(и) випадковим чином. Вивести елементи масиву на екран, виконати необхідну обробку масиву та вивести результат перетворень згідно варіанта (див. таб.3).
Таблиця 3. Варіанти завдань
№ |
Завдання |
1 |
Знайти косинус кута між двома векторами (прийняти за вектор масив з 10 елементів). |
2 |
Зменшити кожен елемент масиву на величину відповідного елемента іншого масиву, причому потрібно зменшувати значення елементів того масиву, середнє значення якого більше. |
3 |
Знайти елементну суму двох масивів - першого елемента одного масиву і останнього елемента іншого масиву, другого елемента і передостаннього і т.д. Визначити яка з них найбільша. |
4 |
Знайти яка з довжин трьох векторів (масиви по 10 елементів) більша. |
5 |
Задано координати «трьох точок (по 10 координат - масив). Визначити яка з відстаней між ними найбільша. |
6 |
Задано два масиви однакової розмірності (10 елементів). Визначити елементи третього масиву такої самої розмірності за умови, що на його непарних номерах розміщений результат суми відповідних елементів двох заданих масивів, а на непарних номерах - результат різниці відповідних елементів тих самих масивів. |
7 |
Визначити кількість однакових елементів в двох заданих масивах. |
8 |
За допомогою масиву з 10 елементів, який містить числа 0,1,...,9 вивести на екран таблицю Піфагора (множення). |
9 |
Задано масив. Переставити його елементи таким чином, щоб спочатку були розміщені елементи, що знаходяться на парних номерах, а потім ті, що на непарних номерах. |
10 |
Задано одновимірний масив , в якому ). Знайти номери двох суміжних номерів, для яких виконується умова, де k – дійсне число, яке зчитується з клавіатури. |
11 |
У масиві зберігаються дані щоденних показників температури за місяць. Знайти кількість днів, де відхилення температури не більше 10% від середнього значення. |
12 |
У одномірному масиві з 10 елементів випадковим чином розміщені 0 та 1, причому одиниць може бути лише 4. Реалізувати програму вгадування позицій одиниць. Вихід з програми за умови вгадування всіх позицій або вводу 0. При виході вивести кількість спроб. |
13 |
Задано два одновимірних масиви. Визначити найменше відношення різниць двох сусідніх елементів цих масивів. |
14 |
В одновимірному масиві визначити, котра з сум найбільша: кожного елемента, через одного чи через два елементи, починаючи з першого. |
15 |
Задано два одномірних масиви. Знайти всі можливі результати добутку двох елементів цих масивів та вивести на екран лише ті, які є простими числами. |
16 |
Знайти елементну суму двох масивів - першого елемента одного масиву і останнього елемента іншого масиву, другого елемента і передостаннього і т.д. Визначити яка з них найбільша. |
17 |
Задано координати «трьох точок (по 10 координат - масив). Визначити яка з відстаней між ними найбільша. |
18 |
Знайти яка з довжин трьох векторів (масиви по 10 елементів) більша. |
19 |
Знайти косинус кута між двома векторами (прийняти за вектор масив з 10 елементів). |
20 |
Визначити кількість однакових елементів в двох заданих масивах. |
21 |
Задано два масиви однакової розмірності (10 елементів). Визначити елементи третього масиву такої самої розмірності за умови, що на його непарних номерах розміщений результат суми відповідних елементів двох заданих масивів, а на непарних номерах - результат різниці відповідних елементів тих самих масивів. |
22 |
Задано масив. Переставити його елементи таким чином, щоб спочатку були розміщені елементи, що знаходяться на парних номерах, а потім ті, що на непарних номерах. |
23 |
У масиві зберігаються дані щоденних показників температури за місяць. Знайти кількість днів, де відхилення температури не більше 10% від середнього значення. |
24 |
Задано два одновимірних масиви. Визначити найменше відношення різниць двох сусідніх елементів цих масивів. |
25 |
У одномірному масиві з 10 елементів випадковим чином розміщені 0 та 1, причому одиниць може бути лише 4. Реалізувати програму вгадування позицій одиниць. Вихід з програми за умови вгадування всіх позицій або вводу 0. При виході вивести кількість спроб. |
Обробка двовимірних масивів
Рівень А
Заповнити матрицю випадковими цілими числами та вивести їх на екран. Виконати необхідні дії над масивом згідно варіанта (див. таб.4) та вивести результат.
Таблиця 4. Варіанти завдань
№ |
Завдання |
1 |
У матриці знайти мінімальний елемент і номер рядка, в якому він знаходиться. |
2 |
У матриці знайти кількість простих чисел. |
3 |
У матриці знайти кількість елементів, менших від заданого числа К. |
4 |
У матриці знайти середнє значення. |
5 |
У матриці знайти кількість парних та непарних чисел. |
6 |
У матриці знайти кількість додатних та кількість від’ємних елементів. |
7 |
У матриці знайти кількість елементів, які містять значення в діапазоні від до N. де N - дійсне число, зчитане з клавіатури. |
8 |
У матриці знайти рядок, який містить мінімальний за модулем елемент. |
9 |
У матриці знайти кількість нульових елементів та замінити їх на середнє значення матриці. |
10 |
У матриці знайти стовпчик та рядок, який містить максимальний та мінімальний за модулем елементи. |
11 |
У матриці підрахувати кількість елементів, які знаходяться між найбільшим та найменшим елементом. |
12 |
У матриці визначити кількість однакових елементів. |
13 |
У матриці поміняти місцями максимальний та мінімальний елементи. |
14 |
У матриці знайти кількість елементів, значення яких більше від середнього значення матриці. |
15 |
У матриці знайти різницю між максимальним та мінімальним елементом матриці. |
16 |
У матриці знайти середнє значення. |
17 |
У матриці знайти кількість елементів, менших від заданого числа К. |
18 |
У матриці знайти мінімальний елемент і номер рядка, в якому він знаходиться. |
19 |
У матриці знайти кількість додатних та кількість від’ємних елементів. |
20 |
У матриці знайти кількість простих чисел. |
21 |
У матриці знайти кількість елементів, які містять значення в діапазоні від до N. де N - дійсне число, зчитане з клавіатури. |
22 |
У матриці знайти кількість нульових елементів та замінити їх на середнє значення матриці. |
23 |
У матриці визначити кількість однакових елементів. |
24 |
У матриці знайти кількість елементів, значення яких більше від середнього значення матриці. |
25 |
У матриці знайти рядок, який містить мінімальний за модулем елемент. |
Рівень Б
Заповнити матрицю випадковими або зчитаними з клавіатури цілими числами, в залежності від вибору користувача, вивести їх на екран. Виконати необхідні дії над масивом згідно варіанту (див. таб.5) та вивести результат.
Таблиця 5. Варіанти завдань
№ |
Завдання |
|
1 |
У матриці знайти в кожному стовпчику мінімальний елемент та номер його рядка. |
|
2 |
У матриці знайти середнє арифметичне значення для кожного з рядків. |
|
3 |
У матриці знайти кількість елементів, що містять додатні числа та мають парні номери як за рядками так і за стовпчиками. |
|
4 |
У матриці знайти для кожного стовпця суму його додатних елементів. |
|
5 |
У матриці знайти для кожного рядка знайти суму його від’ємних елементів. |
|
6 |
У матриці знайти суму елементів за стовпчиками, значення яких за модулем менше від заданого числа К. |
|
7 |
У матриці знайти в кожному рядку кількість елементів, які містять значення, менші від першого значення в кожному відповідному рядку. |
|
8 |
У матриці знайти кількість парних та непарних чисел для кожного стовпчика. |
|
9 |
У матриці ) знайти в кожному рядку та в кожному стовпцю максимальні елементи та вказати їхні середні значення. |
|
10 |
У матриці знайти в кожному стовпчику кількість елементів, більших від середнього значення матриці. |
|
11 |
У матриці знайти на скільки відрізняється середнє значення матриці від середнього значення кожного стовпчика. |
|
12 |
У матриці розділити всі елементи на максимальний елемент першого рядка. |
|
13 |
У матриці знайти в кожному рядку кількість елементів, менших від середнього значення матриці. |
|
14 |
У матриці знайти стовпчик, який містить максимальне середнє арифметичне значення в стовпчиках. |
|
15 |
У матриці ) знайти кількість елементів в кожному рядку, менших від середнього значення матриці. |
|
16 |
У матриці знайти для кожного стовпця суму його додатних елементів. |
|
17 |
У матриці знайти середнє арифметичне значення для кожного з рядків. |
|
18 |
У матриці знайти суму елементів за стовпчиками, значення яких за модулем менше від заданого числа К. |
|
19 |
У матриці знайти в кожному стовпчику мінімальний елемент та номер його рядка. |
|
20 |
У матриці знайти в кожному рядку кількість елементів, які містять значення, менші від першого значення в кожному відповідному рядку. |
|
21 |
У матриці знайти кількість парних та непарних чисел для кожного стовпчика. |
|
22 |
У матриці знайти на скільки відрізняється середнє значення матриці від середнього значення кожного стовпчика. |
|
23 |
У матриці ) знайти кількість елементів в кожному рядку, менших від середнього значення матриці. |
|
24 |
У матриці знайти стовпчик, який містить максимальне середнє арифметичне значення в стовпчиках. |
|
25 |
У матриці знайти в кожному рядку кількість елементів, менших від середнього значення матриці. |
|
Рівень В
Заповнення масиву(ів) здійснити випадковими або зчитаними з клавіатури цілими числами, залежно від вибору користувача, вивести їх на екран. Здійснити необхідну обробку згідно варіанта (див. таб.6) та вивести результат на екран.
Таблиця 6. Варіанти завдань
№ |
Завдання |
1 |
Перевірити чи є квадратна матриця симетричною. |
2 |
Виходячи із заданої прямокутної матриці створити одновимірний масив, який містить елементи матриці, що розміщені вище головної діагоналі. |
3 |
Переставити місцями стовпці матриці, а потім і рядки, в яких містяться максимальний та мінімальний елементи. |
4 |
Реалізувати операцію множення двох матриць однакової розмірності. |
5 |
У прямокутній матриці знайти максимальну суму серед сум модулів елементів діагоналей, паралельних головній діагоналі матриці. |
6 |
У матриці визначити рядок, який має найбільшу кількість однакових елементів та рядок, який має найменшу кількість однакових елементів. Якщо таких декілька - вказати всі. |
7 |
Здійснити поворот квадратної матриці на 90°, 180° та 270° градусів за вибором користувача. |
8 |
Виходячи із заданої прямокутної матриці створити одновимірний масив, що містить елементи матриці, які розміщені нижче головної діагоналі. |
9 |
Коефіцієнти системи лінійних рівнянь задані у вигляді прямокутної матриці. За допомогою допустимих перетворень звести її до трикутного вигляду. |
10 |
Визначити яка з діагоналей квадратної матриці має більшу суму та найбільший елемент. |
11 |
Виходячи із заданої прямокутної матриці створити одновимірний масив, що містить елементи матриці, що розміщені нижче оберненої діагоналі. |
12 |
У прямокутній матриці розміщені 0 та 1. Знайти найбільшу площу, створену одиницями. |
13 |
Реалізувати операцію додавання двох матриць однакової розмірності та знайти визначник матриці. |
14 |
Виходячи із заданої прямокутної матриці створити одновимірний масив, який містить елементи матриці, що розміщені вище оберненої діагоналі. |
15 |
Задану матрицю з розмірністю , де m та n > 4 та кратні 2. Розбити матрицю на чотири рівні частини та перемістити їх між собою за годинниковою стрілкою так, як зображено на схемі. |
16 |
Перевірити чи є квадратна матриця симетричною. |
17 |
У прямокутній матриці знайти максимальну суму серед сум модулів елементів діагоналей, паралельних головній діагоналі матриці. |
18 |
Переставити місцями стовпці матриці, а потім і рядки, в яких містяться максимальний та мінімальний елементи. |
19 |
Реалізувати операцію множення двох матриць однакової розмірності. |
20 |
Виходячи із заданої прямокутної матриці створити одновимірний масив, який містить елементи матриці, що розміщені вище головної діагоналі. |
21 |
Виходячи із заданої прямокутної матриці створити одновимірний масив, що містить елементи матриці, які розміщені нижче головної діагоналі. |
22 |
Здійснити поворот квадратної матриці на 90°, 180° та 270° градусів за вибором користувача. |
23 |
Визначити яка з діагоналей квадратної матриці має більшу суму та найбільший елемент. |
24 |
У прямокутній матриці розміщені 0 та 1. Знайти найбільшу площу, створену одиницями. |
25 |
Виходячи із заданої прямокутної матриці створити одновимірний масив, який містить елементи матриці, що розміщені вище оберненої діагоналі. |
Висновки
ВИМОГИ ДО ЗВІТУ
У звіті з практичної роботи повинні бути відображені:
КОНТРОЛЬНІ ЗАПИТАННЯ
1