
- •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) Базові операції обробки двовимірних масивів
43)Загальні відомості про сортування. Сортування методом вставки.
Однією з найбільш поширених операцій обробки масивів є їх упорядкування, або сортування. Упорядкування масиву — це зміна порядку розташування його елементів за певним критерієм. Наприклад, числовий масив можна упорядкувати за зростанням значень його елементів або за їх спаданням, а масив рядків можна відсортувати в алфавітному порядку. Найчастіше сортування масиву здійснюється з метою полегшення подальшого пошуку.
Відомо багато методів сортування масиву, що відрізняються швидкодією й обсягом оперативної пам'яті, яка при цьому використовується. Серед цих методів можна вирізнити методи внутрішнього та зовнішнього сортування. Методи внутрішнього сортування не передбачають використання допоміжних масивів. Ці методи застосовують до масивів, що повністю розташовані в оперативній пам'яті. Методи зовнішнього сортування застосовують до великих масивів даних, які зберігаються на зовнішніх носіях. У цьому розділі розглянемо методи внутрішнього сортування масиву, обмежуючись задачею сортування за зростанням. Методи внутрішнього сортування прийнято поділяти на дві групи: елементарні (прямі) та удосконалені методи.
Метод вставки
Метод грунтується на наступному: вважається, що перед розглядом запису r[j] попередні записи r[1],r[2],...,r[j-1] вже впорядковані, і r[j] вставляється у відповідне місце. Сортування таблиці починається з другого запису. Її ключ порівнюється з ключем першого запису, і, якщо впорядкованість порушена, то записи r[1] і r[2] переставляються. Потім ключ запису r[3] порівнюється з ключами записів r[2] і r[1]. На j - м кроці До[j] порівнюється по черзі сk[j-1],k[j-2]...(до[1]<=k[2]<=...<=k[j-1]) до тих пір, поки виконується умова до[j]=k[i] означає, що запис r[j] потрібно вставити між r[i] і r[i+1]. Тоді записи r[i+1], r[i+2],...,r[j-1] зрушуються на одну позицію, і запис r[j] поміщається в позицію i+1.
Операції порівняння і переміщення записів зручно суміщати, перемежаючи їх один з одним (цей спосіб називається "просіюванням").
Нижче показано виконання j-го кроку сортування ( з "просіюванням" ).
5 8 10 14 6 2 11 | j=5, i=4, 6 < 14
<-~~ |
5 8 10 6 14 2 11 | i=3, 6 < 10
<-~~ |
5 8 6 10 14 2 11 | i=2, 6 < 8
<-~~ |
5 6 8 10 14 2 11 | i=1, 6 > 5
Кількість операцій порівняння для методу вставки визначається по формулі
n * (n - 1)
з = ------------
4
При достатньо великому числі елементів в сортованій таблиці можна прийняти з = n**2/4 . Максимальна кількість перестановок при використанні цього методу приблизно рівна n**2/4
Метод вставки зазвичай використовується тоді, коли записи вносяться до впорядкованої таблиці. Новий запис повинен бути вставлена в таблицю так, щоб існуюча впорядкованість не порушувалася.
44)Константа. Типізована константа. Змінна. Вирази
Константами - називаються величини, значення яких не змінюються в процесі виконання програми. Для визначення констант використовують зарезервоване слово const.Формат: const<ідентифікатор>=<знач.константи>;Приклад: const max = 1000; min = 1;
Типізовані константи — це змінні, яким надано значення на початку виконання програми. Такі константи називаються змінними, що ініціалізуються, або змінними з початковим значенням. Синтаксис оголошення типізованої константи:
const <ідентифікатор>:<тип> = <вираз>;
Тут значення вказаного справа від знака «=» виразу повинне мати той самий тип, що й ідентифікатор константи.
Змінними -називаються величини, значення яких змінюється в процесі виконання програми. Для опису змінних використовують службове слово var.Формат: var<ідентифікатор>:<тип>;Приклад: var sum1,sum2:real;
Вираз може складатися з констант, змінних, знаків операцій, круглих дужок та функцій.
Нижче наведені знаки операцій у порядку зниження старшинства їх виконання:
@, Not
*, /, Div, Mod, And, Shl, Shr
+, -, Or, Xor
=, <>, <, >, <=, >=, In
Операція @ вживається частіше за все під час роботи з динамічною пам’яттю. Під час роботи з логічними даними виникає потреба брати протилежне (негативне) значення логічної величини. Для цього застосовують операцію Not.
Знак * визначає операцію множення, а / - операцію ділення. Операції Div та Mod мають справу тільки з цілими операндами. Операція Div обчислює цілу частину частки, а Mod – залишок.
Типове використання операцій And - при роботі з логічними даними. Результат операції буде True тільки в тому випадку, коли обидва операнди мають таке ж значення.
Операндами операції Shl та Shr можуть бути цілі числа. Ці операції забезпечують циклічні зсуви відповідно ліворуч та праворуч двійкових розрядів чисел.
Операція Or реалізує логічну функцію диз’юнкції, її результат True, якщо принаймні один з операндів буде True.
Результатом операції Xor буде True, якщо значення операндів не збігаються, в протилежному випадку - False.
Операндами операції In являються: з одного боку, множина деяких елементів, а з другого, дані, які можуть входити в множину, або ні.
Математичний вираз |
Мова Паскаль Функція |
Пояснення |
Тип аргументу |
Тип результату |
y = | x | |
y := abs(x) |
Абсолютне значення "x" або модуль "х" |
integer, real |
integer, real |
y = sin x |
y := sin(x) |
Синус "x" рад |
integer, real |
real |
y = cos x |
y := cos(x) |
Косинус "x" рад |
integer, real |
real |
y = arctg x |
y := arctan(x) |
арктангенс "х" ( -Pi/2 < y < td )< 2 Pi> |
integer, real |
real |
Квадратний корінь з Х |
y := Sqrt(x) |
квадратний корінь из "х"( x > 0) |
integer, real |
real |
y = х2 |
y := Sqr(x) |
значення "х" в квадраті ( х2 ) |
integer, real |
integer, real |
y = ех |
y := Exp(x) |
значення "е" в степені "х" ( ех, де e= 2. 718282. . . ) |
integer, real |
real |
y = Ln x |
y := Ln(x) |
натуральний логарифм "х" ( х > 0 ) |
integer, real |
real |
Дробова частина Х |
y := Frac(x) |
дробова частина "х" |
real |
real |
Ціла частина Х |
y := Int(x) |
ціла частина "х" |
real |
real |
Випадкове число |
t := Random(x) |
випадкове число 0 < =y < x ) |
integer |
integer |
Округлити Х |
t := Round (x) |
Округлює Х до цілого |
real |
integer |
Відкинути дробову частину Х |
t := Trunc(x) |
Відкидає дробову частину від числа Х |
real |
integer |
Перевірка на парність |
f := odd(x) |
|
integer |
boolean true непарне false парне |
Xn |
Y := exp(ln(x)*n) |
Х в степені n |
|
|
ASCII код символу |
Ord(s) |
Код символу в ASCII |
char |
byte |
Символ по ASCII коду |
Chr(s) |
Повертає символ по його коду |
byte |
Char |