
- •Алфавіт мови включає в себе:
- •Лексеми мови. Під лексемами розуміють елементарні конструктивні елементи програми, які є неподільними:
- •Оголошення підпрограм: функцій та процедур. Структурне програмування передбачає побудову програм, яка фактично буде послідовністю звертань до підпрограм.
- •Оператор присвоєння присвоює змінній значення виразу, в якості якого може використовуватися і константа, і змінна, і результат обрахування функції, і група операцій. Оператор має вигляд:
- •Складений оператор. Якщо потрібно деяку групу команд інтерпретувати, їх як одну команду, тобто об’єднати їх в певному контексті, то використовують складені оператори.
- •Оператори вводу-виводу. В мові програмування 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; {ініціалізація графіки}
- •Віртуальним варто оголошувати лише той метод, який:
- •Постановки задачі;
- •Наявними програмними ресурсами;
- •Вимогами по швидкодії, використанням ресурсів еом.
Програми, резидентні в пам'яті
Існує іще одна процедура, яка відноситься до процедур управління процесами. Це процедура Keep. Її форма така:
Keep (ExitCode: WORD);
Виклик цієї процедури призводить до завершення роботи програми, але при цьому залишає її в пам'яті. Такі програми носять назву програм, резидентних в пам'яті, чи просто резидентних програм. На цьому принципі побудовані драйвери пристроїв і різноманітні сервісні програми. Зробити резидентною можна як програму типу COM, так і програму типу EXE, однак так як із-за відмінностей у внутрішній структурі програми типу COM займають в пам'яті менше місця, то резидентні програми частіше всього реалізують в цій формі. Після того як програма залишилась резидентною в пам'яті, вона передає управління командному процесору, а сама якби „ завмирає”. Для того щоб активізуватися в потрібний момент, програма обов’язково повинна перехватити яке-небудь переривання, наприклад, переривання від клавіатури. Після натиснення потрібної комбінації клавіш програма перехвачує управління і виконує свою задачу.
Процедури роботи з датою і часом
Модуль DOS представляє програмісту можливість доступу до системних часів і календаря, а також дає можливість змінити дату і час створення файлу. Для доступу до системної дати використовують процедури GetDate і SetDate.
Процедура
GetDate (year, month, day, day_of_week: WORD);
повертає поточну дату, встановлену в системі.
Процедура
SetDate (year, month, day: WORD);
встановлює поточну дату в системі.
Для доступу до системних часів використовуються процедури SetTime і GetTime. Так як і процедури GetDate і SetDate, процедури роботи з системним часом дозволяють просто отримувати і змінювати значення системного часу і можуть використовуватися, наприклад, для визначення тривалості виконання частин програми і програми в цілому.
Процедура
GetTime (VAR hour, minute, second, hund: WORD);
повертає поточний час, встановлений в системі.
Процедура
SetTime (hour, minute, second, hund: WORD);
встановлює поточний час в операційній системі.
Для роботи з датою створення файлу використовується процедура
GetFTime (VAR F: VAR Time: LONGINT);
яка повертає час і дату створення файлу. Змінна F повинна бути файловою змінною. Час і дата повертається в змінній Time в упакованому форматі у вигляді подвійного слова (32 біта), і для їх розпаковки використовується процедура
UnpackTime (Time: LONGINT; VAR DT: DateTime);
Ця процедура перетворює значення, передане в параметрі Time, а запис DT типу DateTime (дата і час).
Щоб змінити дату створення файлу, використовуються дві інші процедури: PackTime i SetFTime.
Процедура
PackTime (VAR T: DateTime; VAR Time: LONGINT);
перетворює запис типу DateTime в подвійне слово, яке використовується процедурою
SetFTime (VAR F; Time: LONGINT);
Ця процедура встановлює дату створення файла.
Процедури і функції перевірки стану диску
Модуль DOS містить ряд функцій і процедур для роботи з диском. З їх допомогою можна здійснювати контроль за наявності вільного простору на диску, контроль правильності запису на диск, а також визначати загальний об’єм диску.
Функція
DiskFree (Drive: BYTE): LONGINT;
повертає кількість вільних байтів на вказаному диску, де Drive – задає номер диску: 0 – поточний диск, тобто той диск, з якого запущена програма; 1 – дисковод А, 2 – дисковод В, 3 – диск С, 4 – диск D і так далі.
Якщо номер диску заданий некоректно, то функція повертає значення 1. таким чином, завжди є можливість проконтролювати правильність виклику функції.
Функція
DiskSize (Drive: BYTE): LONGINT;
повертає загальну кількість байтів на вказаному диску, де Drive задає номер диску. Номер диску задається так само, як і для функції DiskFree.
Процедура GetVerify використовується для отримання значення прапора перевірки DOS, який має назву Verify. Цей прапор слугує для визначення методу запису даних на диск. Якщо Verify знаходиться у включеному стані, тобто дорівнює ON (істинна), то після того, як інформація записана на диск, вона знову читається і порівнюється з оригіналом (звідси його назва Verify – перевіряти). Якщо ж прапор знаходиться у вимкнутому стані, тобто OFF (обман), то інформація записується на диск без перевірки. Існують різні погляди з приводу того, чи варто вмикати даний прапор під час роботи, але практика показує, що вінчестер – досить надійний пристрій і інформація на нього або записується добре, або не записується зовсім. До того ж дана перевірка правильності запису сильно зношує вінчестер і дисководи (адже потрібно записувати, а потім ще і читати) і значно збільшує час запису. Тому вмикати цей прапор необхідно, коли цінна інформація записується з вінчестера на гнучкі диски. Формат процедури наступний:
GetVerify (VAR Verify: BOOLEAN);
Процедура ставить в параметр Verify значення ON, проходить перевірка правильності запису інформації на всі диски, якщо OFF – інформація записується без перевірки.
Як вже було сказано, якщо виникає необхідність переконатися в правильності запису важливої інформації на диск, необхідно включити прапор перевірки. Для цього призначена процедура
SetVerify (Verify: BOOLEAN);
яка встановлює чи відмінює прапор перевірки в залежності від параметру Verify.