
- •Поняття програми. Програмування як процес розробки алгоритмів. Загальні підходи програмування.
- •2. Поняття про мови програмування. Класифікація мов програмування. Системи програмування. Поняття про інтерпретацію та компіляцію.
- •Вирази та оператори. Операції, операнди. Пріоритети операцій. Арифметичні вирази. Логічні вирази. Оператори введення і виведення.
- •5. Оператори. Класифікація операторів. Прості оператори. Оператор присвоєння. Структурні оператори. Оператори циклів. Організація циклів. Приклади. Оператори введення та виведення.
- •Структурні типи даних. Масиви. Опис масивів. Обробка даних у масивах.
- •Структурні типи даних. Рядки. Опис рядків. Обробка даних у рядках.
- •Структурні типи даних. Множини. Опис множин. Операції над множинами.
- •Структурні типи даних. Записи. Опис записів, поля. Обробка даних у записах.
- •Динамічні змінні. Покажчики. Найпростіші динамічні структури даних. Використання динамічних структур даних.
- •Списки. Стеки. Черги. Деревоподібні структури даних.
- •Файлові типи. Операції з файлами. Файли прямого та послідовного доступу. Створення, читання та модифікація файлів.
- •Модульне програмування в системі тр. Класифікація модулів. Загальна структура модуля користувача. Використання модулів.
- •Об’єктно-орієнтоване програмування як засіб створення складних програм. Поняття обєкта. Мова Object Pascal.
Структурні типи даних. Записи. Опис записів, поля. Обробка даних у записах.
Структурні типи даних визначають впорядковану сукупність скалярних змінних і характеризуються типом своїх компонентів. В мові Pascal допускаються наступні структуровані типи даних: рядки, масиви, множини, записи, файли і покажчики.
Масиви, рядки, множини давали складені структури даних, елементи яких були одного і того ж типу. Кількість елементів в них могла б бути різною. В масивах фіксованою, в рядках і множинах могла б змінюватися, але тип був би спільним. Часто виникає проблема у формування структур даних, елементи яких мають різний тип.
Запис – це структурований тип даних, який складається із фіксованого числа компонентів різного типу.
Оголошуються записи за допомогою слова record. Після нього слідує перелік окремих елементів запису. Елементи описуються через ідентифікатор і тип, що розділюється двокрапкою. В кінці запис закривається службовим словом end.
TYPE
<ім’я типу запису> = RECORD
<ідентифікатор1>: <тип поля>; <ідентифікатор2>: <тип поля>; ... END;
Наприклад
Type Student = record Name: string; Yy, mm, dd: word;
Pol: (female, male); Educ: (state, pay); Usp:real; End;
Ідентифікатор поля повинен бути унікальним тільки в межах запису, однак в силу уникнення помилок краще робити його унікальним в межах усієї програми.
Під величини в пам’яті відводиться, розмір якого дорівнює сумі розмірів кожного поля.
Оскільки записи є комбінаціями різних полів, то доступ до окремого поля повинен здійснюватися при допомозі складеної ідентифікації, кожне поле має своє ім’я.
Якщо весь запис позначається деяким ідентифікатором деякої змінної, то кожне ім’я поля має вигляд
<ідентифікатор запису>.<ідентифікатор поля запису>
Наприклад a.name , a.year, a.pol, a.educ
Враховуючи, що запис є комбінацією різних типів, можна будувати записи із записів.
Складені імена a.name можна використовувати скрізь, де допускається застосування типу поля.
До них можна застосовувати оператор присвоювання, складені імена можна використовувати в операторах вводу-виводу. Допускається застосування оператора присвоєння до записів вцілому, якщо вони мають один і той же тип. Часто зручно користуватись масивом записів.
Вказавши один раз оператор with, можна працювати з іменами полів, як зі звичайними змінними, тобто без вказання перед ідентифікатором поля імені змінної, яка визначає запис.
With <змінна типу запис>do <оператор>;
Записи зазвичай використовуються при роботі з динамічними структурами і для організації файлів на магнітних дисках. Записи також можуть слугувати для опису комплексних чисел, оскільки в мові Pascal немає для цього спеціальних засобів. В цьому випадку дійсна і уявна частини комплексного числа є полями запису.
Поняття підпрограми. Класифікація підпрограм. Процедури та функції. Локальні та глобальні дані. Обмін даними між підпрограмами та основними програмами. Формальні та фактичні параметри. Класифікація параметрів.
Підпрограми призначені для реалізації алгоритмів опрацювання окремих частин деякої складної задачі. Вони дають змогу реалізувати концепцію структурного програмування, суть якого полягає в розкладанні складної задачі на послідовність простих підзадач і в складанні для алгоритмів розв’язування кожної під задачі відповідних підпрограмам. Розрізняють два види підпрограм: підпрограми-процедури і підпрограми-функції.
Підпрограми поділяються на стандартні та підпрограми користувача.
Стандартні підпрограми створювати не потрібно – вони містяться у стандартних модулях System, Crt, Graph, тощо. Підпрограма користувача – це пойменована група команд, яку створюють і описують в основній програмі в розділах Procedure або Function і до якого звертаються з будь-якого місця програми потрібну кількість разів.
Процедури
Загальний опис процедури:
Procedure <назва> (<список формальних параметрів>);
<розділи описів і оголошень процедури>;
Begin
<розділ команд процедури>
End;
У списку формальних параметрів перераховують змінні разом із зазначенням їхніх типів. Розрізняють параметри-аргументи (параметри-значення) – вхідні дані для процедури, і параметри-результати (параметри-змінні), через які можна повертати результати роботи процедури в основну програму. Перед списками параметрів-змінних кожного типу записують слово Var.
Процедуру викликають за допомогою команди виклику:
<назва процедури> <список фактичних параметрів>
Фактичними параметрами-значеннями можуть бути сталі, змінні, вирази, а параметрами-змінними – лише змінні. Між фактичними і формальними параметрами має бути відповідність за кількістю й типами. Відповідні фактичні параметри можуть мати різні імена. Команда виклику функціонує так: значення фактичних параметрів присвоюються відповідним формальним параметрам процедури, виконується процедура, визначаються параметри-змінні, значення яких надаються (повертаються) відповідним фактичним параметрам у команді виклику.
Змінні, описані в розділі описів основної програми, називаються глобальними. Вони діють у всіх підпрограмах, з яких складається програма. Змінні, описані в розділі конкретної процедури, називаються локальними. Вони діють тільки в межах даної процедури. Процедури можуть отримувати й повертати значення не тільки через параметри-змінні, але й через глобальні змінні. Тому списків параметрів у процедурі може й не бути.
Функції
Функція, на відміну від процедури, може повертати в місце виклику лише один результат простого стандартного типу.
Загальний опис функції:
Function <назва> (<список формальних параметрів>): <тип функції>;
<розділи описів і оголошень функції>;
Begin
<розділ команд функції, де має бути така команда: назва:=вираз>
End;
У розділі команд функцій має бути команда присвоєння призначення виразу назві функції. Результат функції повертається в основну програму через її назву. Виклик функції здійснюється лише з виразів так:
<назва функції> (<список фактичних параметрів>).
Існують рекурсивні підпрограми. Рекурсією називається алгоритмічна конструкція, де підпрограма викликає сама себе.