
- •21)Рекурсія. Рекурсивні означення та підпрограми.
- •22)Типи файлів і оголошення файлових змінних
- •23)Процедурні типи
- •24)Відкриття та закриття файлів
- •25)Підпрограма-функція. Стандартні процедури та функції.
- •26)Послідовний запис і зчитування компонентів файла.
- •27)Формальні та фактичні параметри. Параметри-значення, параметри-змінні.
- •Прямий доступ до компонентів файла.
- •29)Поняття про процедуру з параметрами та без параметрів. Локальні та глобальні змінні.
- •30)Буферизація даних. Нетипізовані файли.
- •31)Переривання циклу. Створення циклу на основі вказівки безумовного переходу.
- •32)Поняття про запис. Доступ до компонентів та операції над записам.
- •33)Масив записів. Записи з варіантами.
- •34)Цикл з передумовою та післяумовою. Вкладені цикли.
- •35)Множини та множинний тип даних. Оголошення змінних множинного типу. Зображення множин в оперативній пам'яті.
- •36)Оператори циклів. Цикл з лічильником (з параметром).
- •37)Операції над множинами.
- •38)Оперативний блок. Поліваріантний вибір (Вказівка варіанту). Вказівка безумовного переходу.
- •Поняття про рядок. Функції та процедури обробки рядків.
- •40)Вибір з двох альтернатив (Вказівка розгалуження). Вкладеність конструкцій розгалуження. Логічні операції.
- •41) Загальні відомості про сортування. Сортування методом вибору.
- •42)Вказівки присвоєння, введення та виведення. Форматоване виведення. Арифметичні вирази та стандартні функції.
- •43)Загальні відомості про сортування. Сортування методом вставки.
- •44)Константа. Типізована константа. Змінна. Вирази
- •45)Загальні відомості про сортування. Сортування методом обміну.
- •46)Прості типи даних.
- •47)Загальні відомості про сортування. Швидке сортування.
- •48)Структура та розділи програми на мові Паскаль.
- •49)Загальні відомості про сортування. Сортування методом злиття.
- •50)Походження та розвиток мови Паскаль. Алфавіт та словник мови.
- •51)Класифікація мов програмування. Перетворення програм і система програмування. Мови програмування
- •53)Одновимірні масиви: поняття, його властивості, оголошення, ініціалізація, введення та виведення масиву.
- •54) Відкриті масиви
- •55)Побудова математичної моделі. Основні алгоритмічні структури.
- •Основні властивості масивів, притаманні як одновимірним, так і багатовимірним масивам:
- •Базовими операціями є:
- •Ініціалізація масиву:
- •57) Основні операції обробки одновимірних масивів: вставка та видалення елемента масиву, циклічний зсув елементів масиву.
- •58)Поняття алгоритму, властивості, способи опису.
- •59)Багатовимірні масиви: оголошення, доступ до елементів.
- •Оголошення багатовимірних масивів. Доступ до елементів
- •Можна і так:
- •60) Базові операції обробки двовимірних масивів
48)Структура та розділи програми на мові Паскаль.
Програма, написана мовою ПАСКАЛЬ, являє собою послідовність рядків, кожен з яких відокремлюється від іншого символом “;” (крапка з комою). Вона складається з трьох частин: заголовка, блока описів та блока операторів. Заголовок задає ім’я програмі. Блок описів оголошує всі об’єкти, які використовуються програмою: мітки, константи, типи користувача, змінні, тощо. Блок операторів задає дії, які направлені на розв’язання завдання. Отже, загальний вид програми на мові ПАСКАЛЬ має вигляд: Program <ім’я програми > Uses < модулі > Const < константи > Label < мітки > Type < типи користувача > Var < змінні > Begin < оператори > End. Розглянемо кожен блок детальніше. Заголовок програми розпочинається зі службового слова program , після якого вказується ім’я програми. Він грає допоміжну функцію і ніякої суттєвої ролі для самої програми не має. ПРИКЛАД: program circles; Не слід плутати заголовок програми та ім’я відповідного дискового файлу. Ці імена ніяк між собою не пов’язані. В більшості випадків користувачі не вказують заголовок. У блоку описів оголошуються всі ідентифікатори, що використовуються в програмі (основному модулі). Блок описів, у свою чергу, може містити шість розділів:
розділ підключення модулів процедур та функцій;
розділ опису міток;
розділ опису констант;
розділ визначення типів;
розділ опису змінних;
розділ опису процедур і функцій.
Транслятор мови ПАСКАЛЬ створений таким чином, що основний файл не містить всіх процедур та функцій. Вони згруповані і реалізовані в окремих файлах, які називаються модулями стандартних процедур та функцій. Наприклад, модуль CRT містить функції для роботи з екраном в текстовому режимі, GRAPH – функції для роботи з екраном в графічному режимі. Крім того, користувач може створювати власні модулі процедур та функцій. В розділі uses здійснюється підключення необхідних модулів процедур та функцій. Програма може містити лише один розділ uses , причому він повинен бути завжди першим у блокові описів. Якщо жоден з модулів не підключається, то цей розділ відсутній.
49)Загальні відомості про сортування. Сортування методом злиття.
Основними операціями, що виконуються над таблицями, є впорядкування (сортування) записів і пошук в таблиці запису по заданій умові( по ключу ). Сортування є операцією розстановки записів таблиці в певному порядку відповідно до деякого критерію впорядкування. Сортування здійснюється відповідно до значення ключів всіх записів (напр., впорядкування прізвищ за абеткою або чисел за збільшенням ). Існує достатньо багато методів сортування, що принципово відрізняються один від одного. Якщо таблиця цілком поміщається в оперативній пам'яті ЕОМ, то її впорядкування називають внутрішнім. Якщо для зберігання упорядковуваних даних використовуються зовнішній пристрій, що запам'ятовує, то таке впорядкування називають зовнішнім. Критеріями оцінки методів сортування є :
З - кількість операцій порівняння пар ключів,
Р - число перестановок елементів,
s - резерв пам'яті.
Середня кількість операцій порівняння залежить від методу сортування і при раціональному виборі методу досягає деякого мінімуму, залежного від n, - розміру таблиці ( розмір таблиці - кількість записів, що містяться в ній). Методи внутрішнього сортування можна розділити на дві групи:
- методи, що не вимагають резерву пам'яті;
- методи, що вимагають резерву пам'яті.
До першої групи відносяться такі методи, як метод вибірки, "бульбашки", вставки, Шелла. До другої групи відносяться метод квадратичної вибірки, метод злиття та інші. Прості методи сортування (вибором, обміном, вставкою) вимагають приблизно n**2 порівнянь. Складніші алгоритми зазвичай забезпечують отримання результату за n*log2(n) порівнянь в середньому: сортування методом Шелла, злиттям, "швидке сортування". Проте оптимального у будь-якому випадку сортування не існує, оскільки їх ефективність істотно залежить від типу ключів в таблиці і їх попередній впорядкованості.
Розглянемо алгоритми найбільш рараспространенних методів внутрішнього сортування ( впорядкування виконується за збільшенням значень ключа ).
У основі даного методу внутрішнього сортування лежить процедура злиття двох впорядкованих таблиць. Ці таблиці повинні бути об'єднані так, щоб вийшла одна впорядкована таблиця.
Хай є дві таблиці А і В, впорядковані за збільшенням ключів . Злиття полягає в почерговій пересилці елементів з таблиць А і У в зону формування С. Порядок пересилки в зону формування залежить від результату попарного порівняння ключів таблиць А і Ст.
Сортування злиттям проводиться на основі використання розглянутої вище процедури. Суть сортування полягає в тому, що упорядковувана таблиця розділяється на рівні групи елементів. Групи упорядковуються, а потім попарно зливаються, утворюючи нові групи, що містять удвічі більше елементів.
Процедура злиття двох груп повинна мати такі параметри:
tab - ім'я сортованої таблиці;
n - довжина таблиці (кількість записів);
i1,i2 - початкові індекси зливаних груп;
l1,l2 - довжини зливаних груп;
h - крок злиття;
ps - поле злиття.
tab tab
--------------- ---------------
| . . . | | . . . |
i1 +-------------+ ------- i1 +-------------+
| 23 | l1 | 17 | | 17 |
| 68 | +-----+ | 19 |
i2 +-------------+ | 19 | | 23 |
| 17 | +-----+ | 68 |
| 19 | l2 | 23 | | |
+-------------+ +-----+ +-------------+
| | | 68 | | |
| . . . | ------ | . . . |
-------------- --------------
На першому етапі кожна група містить два сусідні елементи початкового масиву. Елементи усередині груп упорядковуються (напр., методом вставки). Потім відбувається попарне злиття груп. Кількість груп в списку зменшується удвічі до тих пір, поки не буде отримана одна впорядкована група. Якщо число елементів непарне, то вводиться додатковий елемент з максимальним значенням. Після сортування він відкидається. Якщо число груп, сформованих на першому етапі, непарно, то непарна група переписується без злиття. Розглянутий метод двохпутнього сортування злиттям вельми ефективний. Оскільки при сортуванні потрібно виконати log2(n) проходів, то необхідне сумарне число порівнянь рівне, прімерно,n*log2(n). Одним з недоліків даного методу є вимога великого резерву пам'яті:
s = [n/2].
Метод простого злиття ніяк не враховує той факт, що в таблиці можуть бути відразу або виходити на деякому кроці упорядочениє групи записів довжиною m і l,коториє можна відразу об'єднати в одну впорядковану групу завдовжки m+l (більш того, ці впорядковані послідовності можуть розриватися, їх
елементи відноситимуться до різних груп). Сортування, при якому зливаються поряд впорядковані групи довільної довжини, що стоять, називається природним злиттям. Мета природного сліянія-ісключить зайві перегляди. Процедура злиття двох груп така ж, як і в методі простого злиття, але довжини l1 і l2 зливаних груп потрібно кожного разу підраховувати, порівнюючи ключі два рядом записів, що стоять (можна скласти масив довжин впорядкованих груп).