
- •Практикум до навчальної практики з дисципліни «Алгоритми та структури даних»
- •Пояснювальна записка
- •Короткі теоретичні відомості з теоретичної частини роботи.
- •Зміст і послідовність виконання завдань.
- •Методичні рекомендації з виконання та оформлення.
- •Варіанти до завдання 3
- •Варіанти до завдання 4
- •Варіанти до завдання 5
- •Контрольні питання.
- •Короткі теоретичні відомості з теоретичної частини роботи.
- •Зміст і послідовність виконання завдань.
- •Методичні рекомендації з виконання та оформлення.
- •Варіанти до завдання 3
- •Варіанти до завдання 4
- •Контрольні питання.
- •Короткі теоретичні відомості з теоретичної частини роботи.
- •Зміст і послідовність виконання завдань.
- •Методичні рекомендації з виконання та оформлення.
- •Варіанти до завдання 3
- •Варіанти до завдання 4
- •Варіанти до завдання 5
- •Контрольні питання.
- •Короткі теоретичні відомості з теоретичної частини роботи.
- •Зміст і послідовність виконання завдань.
- •Методичні рекомендації з виконання та оформлення.
- •Варіанти до завдання 3
- •Варіанти до завдання 4
- •Варіанти до завдання 5
- •Контрольні питання
- •Короткі теоретичні відомості з теоретичної частини роботи.
- •Зміст і послідовність виконання завдань.
- •Методичні рекомендації з виконання та оформлення.
- •Варіанти до завдання 3
- •Варіанти до завдання 4
- •Варіанти до завдання 5
- •Контрольні питання
- •Короткі теоретичні відомості з теоретичної частини роботи.
- •Зміст і послідовність виконання завдань.
- •Методичні рекомендації з виконання та оформлення.
- •Варіанти до завдання 3
- •Варіанти до завдання 4
- •Варіанти до завдання 5
- •Контрольні питання
- •Короткі теоретичні відомості з теоретичної частини роботи.
- •Зміст і послідовність виконання завдань.
- •Методичні рекомендації з виконання та оформлення.
- •Варіанти до завдання 3
- •Варіанти до завдання 4
- •Контрольні питання
- •Короткі теоретичні відомості з теоретичної частини роботи.
- •Зміст і послідовність виконання завдань.
- •Методичні рекомендації з виконання та оформлення.
- •Варіанти до завдання 3
- •Варіанти до завдання 4
- •Контрольні питання
- •Короткі теоретичні відомості з теоретичної частини роботи.
- •Зміст і послідовність виконання завдань.
- •Методичні рекомендації з виконання та оформлення.
- •Варіанти до завдання 3
- •Варіанти до завдання 4
- •Контрольні питання
- •Короткі теоретичні відомості з теоретичної частини роботи.
- •Зміст і послідовність виконання завдань.
- •Методичні рекомендації з виконання та оформлення.
- •Варіанти до завдання 3
- •Варіанти до завдання 4
- •Контрольні питання
- •Короткі теоретичні відомості з теоретичної частини роботи.
- •Операції над множинами
- •Зміст і послідовність виконання завдань.
- •Методичні рекомендації з виконання та оформлення.
- •Варіанти до завдання 3
- •Варіанти до завдання 4
- •Контрольні питання
- •Короткі теоретичні відомості з теоретичної частини роботи.
- •Зміст і послідовність виконання завдань.
- •Методичні рекомендації з виконання та оформлення.
- •Варіанти до завдання 3
- •Варіанти до завдання 4
- •Контрольні питання
- •Короткі теоретичні відомості з теоретичної частини роботи.
- •Розглянемо деякі функції модуля Graph:
- •Зміст і послідовність виконання завдань.
- •Методичні рекомендації з виконання та оформлення.
- •Варіанти до завдання 3
- •Варіанти до завдання 4
- •Контрольні питання
- •Короткі теоретичні відомості з теоретичної частини роботи.
- •Контрольні питання
- •Рекомендована література
- •Додаткова
- •Порядок виконання і захист робіт
Короткі теоретичні відомості з теоретичної частини роботи.
Масив – це поіменована сукупність однорідних (однотипних) значень.
У програмуванні масив розглядають як сукупність однотипних комірок пам’яті, що має одне ім’я. У кожній комірці зберігається якесь значення.
Фактично масив – це індексована єдиним чи декількома індексами послідовність простих змінних одного типу, які позначаються одним іменем.
Кожен масив визначається:
іменем (ідентифікатором);
типом його елементів;
вимірністю (кількістю індексів);
мінімальним значенням кожного індексу.
Описати масив можна у розділі опису типів type, у розділі констант const, або у розділі оголошення змінних var.
Опис мовою Паскаль:
а)опис у розділі змінних:
var < ім’я масиву>: array [< діапазон зміни індексу >] of< тип елементів масиву>;
б) задання кількості елементів константою:
const n=30;
var M:array [1..n] of integer;
в) створення власного типу:
const n=30;
type arr=array[1..n] of integer;
var M:arr;
Кількість елементів в одновимірному масиві обчислюється за формулою: n – m +1.
Для доступу до елементів одновимірного масиву необхідно вказувати ім’я масиву і у квадратних дужках порядковий номер елемента масиву.
Якщо розміри масиву задані змінними, то перед визначенням масиву вони повинні мати конкретні цілочисельні значення.
Розміри масиву можуть задаватися і цілочисельними виразами.
Формат команди:
тип ТАБ ім’я масиву [ тип індексу ]
Ми зупинимося на розгляді < типу індексу > діапазон: m:n, де m – початковий номер елемента в масиві, а n – кінцевий.
Наприклад, літ таб ЖУРНАЛ [1:30], дійсн таб A[m:n], ціл таб T[1:31]
Можливі два методи заповнення масиву:
за допомогою клавіатури: генератором випадкових чисел.
Const n=20; var A: array [1..n] of real; i: word; begin for i:=1 to n do begin write (‘ Введіть значення ‘); readln(A[i]); end; end. |
У цьому випадку числа генеруються автоматично. Це зручніше, ніж введення з клавіатури.
|
Зверніть увагу, що для другого випадку після заповнення значення елементу відразу виводиться на екран для контролю: для одновимірного масиву – в рядок.
Щоб опрацювати всі елементи масиву використовують команду циклу for (чи while або repeat).
Сортування масивів. При розв’язанні задачі сортування звичайно висувається вимога мінімального використовування додаткової пам’яті, з якої випливає недопустимість застосування додаткових (допоміжних) масивів.
Для оцінки швидкодії алгоритмів при застосуванні різних методів сортування, як правило, використовують два показники: кількість привласнень та кількість порівнянь.
Всі методи сортування можна поділити на дві великі групи: прямі методи сортування та поліпшені методи сортування.
Прямі методи сортування по принципу, який лежить в основі методу, в свою чергу поділяються на три підгрупи:
- сортування вставкою (включенням).
- сортування вибором (виділенням).
- сортування обміном (сортування (‘бульбашки’).
Поліпшені методи сортування грунтуються на тих же самих принципах, що і прямі, але використовують деякі оригінальні ідеї для прискорення процесу сортування. Прямі методи на практиці використовуються дуже рідко, бо мають відносно низьку швидкодію. Однак вони добре показують суть заснованих на них поліпшених методів. Окрім того, у деяких випадках (як правило, при невеликій довжині масиву і(або) особливому вихідному розташуванню елементів масиву) деякі із прямих методів можуть навіть перевершити поліпшені методи.
Сортування вставкою. Масив поділяється на дві частини: відсортовану і не відсортовану. Елементи із не відсортованої частини почергово вибираються та вставляються у відсортовану частину так, щоб не порушити в ній упорядкованість елементів. На початку роботи алгоритму у якості відсортованої частини масиву приймають тільки один перший елемент, а у якості не відсортованої частини – всі інші елементи.
Таким чином, алгоритм буде складатися із (n-1)-го проходу (n – розмірність масиву), кожний з яких буде включати чотири дії:
- взяття чергового і-того не відсортованого елементу та зберігання його у допоміжній змінній;
- пошук позиції j у відсортованій частині масиву, в якій присутність взятого елементу не порушує упорядкованості елементів;
- зрушення елементів масиву від (і-1)-го до (j-1)-го вправо, щоб звільнити знайдену позицію вставки;
- вставка взятого елементу у знайдену j-ту позицію.
Для того, щоб реалізувати даний метод, можна запропонувати кілька алгоритмів, які будуть відрізнятися способом пошуку позиції вставки.
Сортування вибором. На першому етапі алгоритму перший елемент масиву по черзі порівнюється з наступними і при виконанні поставленої умови міняється з ними місцями. В результаті першого проходу алгоритму на першому місті масиву буде знаходитися найбільший або найменший елемент (в залежності від умови упорядкування). На наступних етапах аналогічному алгоритму обробки будуть підтверджені другий, третій і т.д. до останнього елементи масиву. При цьому відсортована частина масиву із обробки виключається.
Сортування обміном. Зліва направо почергово, порівнюємо два сусідніх елемента, і якщо їх взаєморозташування не відповідає заданій умові упорядкованості, то вони змінюються містами. Після одного такого обходу на останній n-тій позиції масиву буде стояти найбільший або найменший елемент (в залежності від умови упорядкування), тобто «спливає» перша «бульбашка». Кожний наступний обхід обмінів виконується тільки до вже упорядкованої частини масиву.