- •Міністерство освіти і науки україни
- •Лабораторнаробота№ 7. Одновимірнімасиви
- •Короткі теоретичні відомості про масиви
- •Оголошення одновимірного масиву та звернення до його елементів
- •Приклад використання одновимірного масиву
- •Масиви символів
- •Одновимірні масиви як параметри функцій
- •Функції обробки масивів чисел
- •Функція формування випадкового масиву
- •Функції виведення масиву на консоль
- •Функції введення масиву з консолі
- •Функція введення масиву як рядка символів
- •Функція введення масиву по елементам
- •Функція вилучення елементу з масиву
- •Функція перевороту масиву
- •Функція формування масиву накопичених значень
- •Функції обробки рядків символів
- •Функція копіювання частини рядка
- •Функція знаходження підрядка у рядку
- •Завдання для самостійної роботи
- •Вимоги до звіту
- •Сортування вибором
- •Приклад сортування елементів масиву у зростаючому порядку за методом вибору
- •Функція сортування масиву методом вибору
- •Сортування обміном (метод бульбашки)
- •Прикладсортування елементів масиву у зростаючому порядку за методом обміну
- •Функція сортування масиву методом обміну
- •Сортування вставкою
- •Приклад сортування елементів масиву у зростаючому порядку за методом вставки
- •Функціясортування масиву заметодом вставки
- •Сортування за ускладненими правилами
- •Обробка упорядкованих масивів
- •Пошук позиції елемента у впорядкованому масиві
- •Вставка елементу до впорядкованого масиву
- •Видалення елементу з упорядкованого масиву
- •Злиття двох впорядкованих масивів
- •Завдання для самостійної роботи
- •Вимоги до звіту
- •Оголошення та ініціалізація матриць
- •Матриці як параметри функцій
- •Формування та виведення матриць з використанням консолі
- •Тотальна обробка даних у матрицях
- •Вибіркова обробка матриць
- •Перестановки елементів матриці
- •Видалення та вставка елементів матриці
- •Сортування елементів матриці
- •Завдання для самостійної роботи
- •Вимоги до звіту
- •Оголошення шаблону та ініціалізація структур
- •Масивиструктур
- •Введення-виведення структур
- •Сортування масивів структур
- •Створення проекту «Результати атестації»
- •Інтерфейс користувача для проекту
- •Визначення глобальних типів даних програми
- •Функція обробки номеру вибраного варіанту
- •Функція відображення масиву на консолі
- •Додавання нових даних до масиву структур
- •Функція сортування масиву за групою та прізвищем
- •Сортування за кількістю незадовільних оцінок та середньому балу
- •Вибірка студентів, що мають середній бал вище 4
- •Підрахунок кількості студентів що мають більше 2-х незадовільних оцінок
- •Завдання для самостійної роботи
- •Вимоги до звіту
- •Контрольні питання
- •Рекомендована література
Обробка упорядкованих масивів
Впорядковані масиви найчастіше використовуються як сховища деякої інформації. Найчастіше зустрічаються такі завдання, пов'язані з їх обробкою:
пошук позиції елемента в масиві;
вставка елементу у масив, без порушення порядку;
видалення елемента з масиву;
об'єднання двох масивів в один зі збереженням порядку;
Нижче розглядаються функції, які вирішують ці завдання.
Пошук позиції елемента у впорядкованому масиві
Для пошуку позиції елемента у впорядкованому масиві можна використовувати метод дихотомії (ділення області пошуку навпіл). У цьому методі елемент, який знаходиться в середині області пошуку, порівнюється із зразком, який потрібно знайти. Якщо він не відповідає зразку, то по його значенню можна визначити, в якій з половин області пошуку може знаходитися потрібний елемент, праворуч або ліворуч. Таким чином, в результаті одного порівняння область пошуку звужується наполовину.
Цикл пошуку повторюється доти, поки потрібний елемент не буде знайдений, або область пошуку звузиться до одного елемента, що буде свідчити про те, що потрібного елементу в масиві немає.
Функція, яка повертає номер позиції елементу у впорядкованому масиві наведена на рисунку 8.24. Якщо елемент не знайдено, функція повертає -1.
Рисунок 8.24–Функція пошуку позиції елемента у впорядкованому масиві
Вставка елементу до впорядкованого масиву
Алгоритм вставки елементу до впорядкованого масиву вже розглядався, як частина алгоритму сортування вставкою. Він полягає у послідовному аналізі елементів масиву, починаючи з останнього. Якщо елемент масиву більший ніж той, що потрібно вставити, елементи масиву переміщують вправо на одну позицію, для того, щоб звільнити місце для елемента, що вставляється. Зсуви проводяться доти, поки не буде знайдено місце, відповідне значенню елемента, що вставляється.
Якщо всі елементи масиву більше ніж елемент, що додається, то всі елементи масиву перемістяться праворуч, а новий буде поставлений на перше місце. Зрозуміло, що кількість елементів масиву при цьому збільшується на один.
Функція вставки елемента до впорядкованого масиву таким методом наведена на рисунку 8.25.
Рисунок 8.25 –Функція вставки елементу до впорядкованого масиву
Але функцію, наведену на рисунку 8.25 можна дещо прискорити за рахунок зменшення кількості порівнянь, використавши метод дихотомії для пошуку місця вставки.
Такий варіант функції вставки наведено на рисунку 8.26. Як бачимо, спроба підвищити ефективність алгоритму приводить до його ускладнення.
Рисунок 8.26–Функція вставки елементу до впорядкованого масиву, яка використовує метод дихотомії
Видалення елементу з упорядкованого масиву
В алгоритмі видалення елементу з упорядкованого масиву можна використовувати розглянуту вище функцію для пошуку індексу елементу, що видаляється. Після визначення цього індексу, елемент видаляється шляхом зсуву ліворуч на одну позицію всіх елементів, що знаходяться за тим, який потрібно видалити. Значення змінної, в якій зберігається кількість елементів, у кожному циклі зменшується на одиницю.
Процедура видалення елементу з упорядкованого масиву наведена на рисунку 8.27. Процедурою передбачено, що у масиві можуть бути однакові елементи.
Рисунок 8.27–Функція видалення елементу із впорядкованого масиву