- •Алфавіт мови включає в себе:
- •Лексеми мови. Під лексемами розуміють елементарні конструктивні елементи програми, які є неподільними:
- •Оголошення підпрограм: функцій та процедур. Структурне програмування передбачає побудову програм, яка фактично буде послідовністю звертань до підпрограм.
- •Оператор присвоєння присвоює змінній значення виразу, в якості якого може використовуватися і константа, і змінна, і результат обрахування функції, і група операцій. Оператор має вигляд:
- •Складений оператор. Якщо потрібно деяку групу команд інтерпретувати, їх як одну команду, тобто об’єднати їх в певному контексті, то використовують складені оператори.
- •Оператори вводу-виводу. В мові програмування Turbo Pascal ввід-вивід здійснюється насправді не операторами, а стандартними
- •Оператор розгалуження. В ряді випадків алгоритм розв’язку задачі передбачає розгалуження, тобто можливість виконання декількох різних дій в залежності від значення певної логічної умови.
- •Оператори циклу.
- •Програма знаходження суми чисел 1..10.
- •Програма друкування символів ‘a’..’z’.
- •Програма побудови таблиці істинності для and.
- •Скалярні / прості / стандартні типи даних:
- •Скалярні типи користувача:
- •Наприклад
- •4.Структурокані типи даних:
- •1 Діапазон – одновимірний масив;
- •2 Діапазони – двовимірний ( таблиці, матриці);
- •Наприклад
- •5.Комбіновані структури даних.
- •Варіантна частина у записі може бути лише одна і лише в кінці. Службове слово end є спільним для конструкції record і варіантної частини.
- •Приклади задач з масивами
- •Знайти середнє арифметичне додатніх і від’ємних елементів масиву цілих чисел.
- •Стандартні підпрограми обробки рядків
- •Операції над множинами
- •1. Процедури являють собою дію, тому їх можна використовувати в якості окремого оператора в розділі операторів програми.
- •2. Функції являють собою значення певного типу, крім цього вони можуть використовувати деяку дію, але значення їх є головним. Тому функції використовують як окремі оператори у виразах.
- •Параметри-змінні
- •Без типові параметри
- •Наявність умови зупинки, при якій деякому параметру рекурсії передається деяке значення рекурсії.
- •Чітко визначений алгоритм, при обчисленні кожного вищого рівня рекурсії через попередній рівень.
- •Типізовані.
- •Текстові.
- •Безтипові.
- •Процедура зв’язування певної файлової змінної із конкретним файлом на диску
- •Процедура відкриття файлу для читання
- •Процедура відкривання файлу для запису
- •Процедура закривання файлу
- •Процедура примусового очищення внутрішнього буфера обміну
- •Розглянуті раніше встановлюючи та завершальні підпрограми
- •Процедура читання
- •Процедура запису у файл
- •Функція визначення розміру файла у записі
- •Процедура відсікання хвостової частини файлу
- •Процедура читання з текстового файлу
- •Процедура запису
- •1. Процедура для перейменування файлів
- •2. Процедура видалення файлу
- •Xxxx0 адреса
- •35 Квартира з номером 34 у 13 будинку з номером 12.
- •Файли розміщуються в зовнішній пам'яті, а динамічні структури в оперативній.
- •Типізовані файли фактично є файлами прямого доступу, що означає довільний доступ до елементів. В динамічних структурах доступ до елементів виключно послідовний.
- •Здійснюватиметься рух по дереву до крайнього лівого елемента (найменшого).
- •Це значення друкується.
- •Робиться один крок вправо і послідовність 1-3 повторюється відносно нової поточної вершини.
- •Заголовок.
- •Інтерфейс на частина.
- •Розділ реалізації. В реалізації описуються всі компоненти мови, які мають бути невидимі зовні.
- •Процедури управління виконанням програм
- •Функції перетворення типів
- •Процедури і функції для змінних порядкового типу
- •Математичні функції
- •Процедури та функції роботи з рядками
- •Процедури та функції управління динамічною пам’яттю
- •Функції роботи з вказівниками і адресні функції
- •Процедури вводу-виводу і роботи з файлами і каталогами
- •Інші процедури і функції
- •Змінні та константи модуля
- •Змінні модуля crt
- •Процедури і функції модуля crt
- •Перепризначення файлів вводу-виводу
- •Процедури роботи з екраном
- •Процедури і функції управління курсором
- •Процедури роботи з рядками
- •Функції допиту клавіатури
- •Процедури управління кольором
- •Процедури управління вбудованим динаміком і таймером
- •Використання клавіш редагування рядків
- •Використання командних символі
- •Типи драйверів
- •Типи шрифтів
- •Ініціалізація графіки класифікація типів драйверів і відео режимів
- •Ініціалізація і завершення відеорежиму
- •Обробка помилок ініціалізації
- •Процедури роботи з відеорежимами
- •Переключення між текстовим і графічним режимами
- •Побудова зображень на екрані система координат
- •Управління поточним вказівником
- •Графічні вікна
- •Відображення точки на екрані
- •Відображення відрізків прямих ліній
- •Побудова прямокутників
- •Побудова многокутників
- •Побудова дуг, еліпсів і кіл
- •Робота з текстом
- •Відображення рядків
- •Відображення числової інформації
- •Управління параметрами зображення встановлення кольору
- •Встановлення палітри
- •Функції управління операційним середовищем
- •Процедури управління процесами
- •Процедури обслуговування переривань
- •Програми, резидентні в пам'яті
- •Процедури роботи з датою і часом
- •Процедури і функції перевірки стану диску
- •Процедури і функції роботи з файлами
- •Інші процедури і функції
- •Поля даних оголошуються на початку, а методи після них.
- •При оголошенні методів у структурі задаються лише заголовок відповідної підпрограми (подібно до інтерфейсу в модулях).
- •Окремі методи можуть використовувати інші методи цього ж об’єкта, тому вони повинні бути оголошенні в певному порядку.
- •Ini; {ініціалізація графіки}
- •Віртуальним варто оголошувати лише той метод, який:
- •Постановки задачі;
- •Наявними програмними ресурсами;
- •Вимогами по швидкодії, використанням ресурсів еом.
1. Процедури являють собою дію, тому їх можна використовувати в якості окремого оператора в розділі операторів програми.
2. Функції являють собою значення певного типу, крім цього вони можуть використовувати деяку дію, але значення їх є головним. Тому функції використовують як окремі оператори у виразах.
Оголошуються процедури і функції у розділі оголошень, причому оголошення
Формальне оголошення процедур має вигляд:
PROCEDURE <ім’я> (<список формальних параметрів>);
<розділ оголошень>;
<тіло процедури>;
Ім’я процедури формується згідно з правилами побудови ідентифікаторів у Pascal.
Список параметрів містить перелік величин із заданням їхнього типу, що можуть передаватися у підпрограму (вхідні параметри) або повертатися із підпрограми (вихідні).
Розділ оголошень містить описи всіх об’єктів, що використовуються лише у цій підпрограмі.
Тіло підпрограми містить оператори, що об’єднуються операторними дужками.
FUNCTION (<список формальних параметрів> :)<тип результату>;
<розділ оголошень>;
<тіло функції>;
На відмінну від процедур у функції обов’язково задається тип її значення. В якості типу результату можуть бути скалярні типи, рядки, множини, вказівники.
В розділі операторів обов’язково повинен бути присутній хоча б один оператор присвоєння ідентифікатору функції деякого значення, що і буде результатом функції.
Наприклад
Процедура і функція, що обчислюють суму елементів масиву цілих чисел.
CONST n=5;
TYPE
masiv=array[1..n] of integer;
PROCEDURE P_SUMA(a: masiv; m:integer; var suma: integer);
VAR
i: byte;
BEGIN
suma:=0;
for i:=1 to m do
suma:=suma+a[i]
END;
FUNCTION F_SUMA(a:masiv; m:integer): integer;
VAR
i: byte;
s: integer;
BEGIN
s:=0;
for i:=1 to m do
s:=s+a[i];
F_SUMA:=s;
END;
Процедура має три параметри: два вхідні – масив а і кількість т і один вихідний – сума.
Розділ оголошень локальних містить і типу byte.
Тіло процедури складається з двох операторів
Через значення функції типу integer локальне оголошення містить дві змінних. Тіло функції містить оператор присвоєння.
При фактичному виклику оголошених підпрограм результат можна отримати таким чином.
VAR
aa: masiv;
c, j: integer;
BEGIN
for j:=1 to n do
readln(aa[i]);
P_SUMA (aa, n, c);
c:= F_SUMA(aa,n);
Механізм передачі параметрів
При звернені до підпрограми, їм можуть передувати в якості вхідних даних деякі значення, крім того деякі вхідні дані можуть змінювати своє значення в тілі підпрограми і можуть повертатися в якості вихідних.
В Pascal використовується три види параметричних підпрограм;
1. Параметри-значення.
2. Параметри-змінні.
3. Без типові параметри.
Задання виду параметрів здійснюється формальним оголошенням заголовку підпрограм.
Параметри-значення
Параметри-значення виступають в якості вхідних параметрів, тобто їх значення передається у підпрограму і в процесі її виконання не може змінюватися.
Оголошуються такі параметри шляхом переліку формальних ідентифікаторів та заданням їхнього параметру.
Оскільки значення таких параметрів не змінюється, то при фактичному виклику підпрограми в якості фактичних параметрів-значень можуть бути змінні, константи, зображення певного типу.
Наприклад
Програма, що реалізує операції над комплексними числами.
TYPE
Complex=record
Re, Im:real;
END;
PROCEDURE SUMA (a, b: complex; var c:complex);
BEGIN
c:=a.Re +b.Re;
c:=a.Im+b.Im;
END;
BEGIN
…
a.Re:=2;
a.Im:=2;
b.Re:=1;
b.Im:=-2;
SUMA (a,b,c);
END.
При формальному оголошенні процедури. Перші два параметри є параметрами-значеннями.
В тілі процедури описаний алгоритм у вигляді послідовності операторів. В програмі оголошено три змінні a, b, c, яким надаються двом із них.
При фактичному виклику процедури сума їй передаються в якості вхідних параметрів значення змінних a,b, результат змінна с.
В якості фактичних параметрів можуть використовуватися будь-які ідентифікатори типу complex.
Фактичні параметри можуть бути будь-які об’єкти програми, тип яких відповідає типу формальних параметрів.
