
- •Алфавіт мови включає в себе:
- •Лексеми мови. Під лексемами розуміють елементарні конструктивні елементи програми, які є неподільними:
- •Оголошення підпрограм: функцій та процедур. Структурне програмування передбачає побудову програм, яка фактично буде послідовністю звертань до підпрограм.
- •Оператор присвоєння присвоює змінній значення виразу, в якості якого може використовуватися і константа, і змінна, і результат обрахування функції, і група операцій. Оператор має вигляд:
- •Складений оператор. Якщо потрібно деяку групу команд інтерпретувати, їх як одну команду, тобто об’єднати їх в певному контексті, то використовують складені оператори.
- •Оператори вводу-виводу. В мові програмування 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; {ініціалізація графіки}
- •Віртуальним варто оголошувати лише той метод, який:
- •Постановки задачі;
- •Наявними програмними ресурсами;
- •Вимогами по швидкодії, використанням ресурсів еом.
Побудова зображень на екрані система координат
Для побудови зображень на екрані в графічному режимі застосовується система координат, дещо відрізняється від використовуваної в текстовому режимі. Відлік починається від верхнього лівого кута екрану, який має координати (0,0). Значення Х (стовпець) збільшується в напрямку зліва на право, значення Y (рядок) – в напрямку зверху вниз. При цьому екран представляється у вигляді прямокутного масиву адресних точок, а не символів, як в текстовому режимі. Для різних типів адаптерів і режимів значення кількості точок по вертикалі і горизонталі можуть досить відрізняються. Визначення значення максимальних координат екрану в модулі Graph реалізовано за допомогою функцій
GetMaxX: INTEGER;
GetMaxY: INTEGER;
Якщо при адресації точок вказується значення координат, яке перевищує максимальні, операція ігнорується.
Управління поточним вказівником
Щоб побудувати зображення, необхідно обов’язково вказати початкову позицію. В текстових режимах цю позицію визначає положення курсору, який розміщується кожний раз за останнім відображеним символом і вказує на місцезнаходження наступного. В графічному режимі видимого курсору немає, але є невидимий поточний вказівник СР (current pointer). Який виконує ті ж функції, що і курсор в текстовому режимі.
В графічному режимі для переміщення СР використовуються процедури MoveTo і MoveRel.
Процедура
MoveTo (X, Y: INTEGER);
Переміщує поточний вказівник в точку з координатами X, Y. Процедура
MoveRel (dX, dY: INTEGER);
переміщує СР на dX точок по горизонту і на dY точок по вертикалі відносно останнього положення поточного вказівника. При задані додатних значень dX чи dY значення відповідних координат поточного вказівника будуть збільшуватися, при задані від’ємних – зменшуватися.
Для визначення поточного положення графічного курсору використовуються функції
GetX: INTEGER;
GetY: INTEGER;
які повертають значення поточних координат вказівника (абсциси і ординати відповідно).
Графічні вікна
По аналогії з текстовими режимами графічний екран може бути представлений як одне велике чи декілька менших по розміру вікон. Нагадаємо, що вікно – це прямокутна область екрану, в якому реалізовані всі функції повного екрану. Після відкриття вікна весь простір екрану поза меж вікна як би „виходить з гри”, і весь ввід-вивід відбувається тільки через вікно. В кожний окремий момент може бути активне тільки одне вікно. Якщо вікон декілька, переключення вводу-виводу в потрібне вікно покладене на програміста.
По замовчуванню вікно займає весь екран, значення координат його лівого верхнього і правого нижнього вікна встановлюється автоматично процедурою ініціалізації InitGraph.
Щоб стерти все зображення на екрані, тобто очистити його, використовується процедура ClearDevice. З моменту початку її виконання всі установки по кольору, фону і вікнам анулюються, і вказівник СР становиться в точку з координатами (0,0).
Схожі дії виконує і процедура GraphDefaults, але, крім очищення екрану, вона встановлює також ряд параметрів графічної системи:
Розмір графічного вікна стає рівним розміру екрану.
Відновлюється системна кольорова палітра.
Перезначаться кольори основних ліній і кольори екрану.
Товщина і стиль лінії встановлюються такими, як задано по замовчуванню.
Колір і стиль заповнення геометричних фігур і замкнутих ламаних встановлюється такими, як задано по замовчуванню.
Переустановлюється активний шрифт і його стиль.
Процедура GraphDefaults неявно викликається при ініціалізації графіки і виконує, по суті, всі стандартні установки графічних параметрів.
Для створення вікна слід скористатися процедурою
SetViewPort (X1, Y1, X2, Y2: INTEGER; Clip: BOOLEAN);
де X1, Y1 – координати лівого верхнього кута, X2, Y2 – координати правого нижнього кута. Параметр Clip визначає, будуть фрагменти зображення відрізатися при попаданні за межі вікна чи ні. Після створення вікна початком координат стає його верхній лівий кут, який буде мати координати (0,0).
Для очищення екрану використовується процедура SetViewPort. Після її виконання все зображення у вікні стирається, і вказівник СР встановлюється в ліву верхню точку вікна з координатами (0,0) (не слід забувати, що це координати в внутрішній системі координат, зв’язаній з даним вікном, а не в системі координат повного екрану). Перейти до системи координат повного екрану можна за допомогою процедури ClearDevice чи задавши в процедурі установки вікна максимально можливі значення.
Для визначення поточних параметрів вікна слугує процедура
GetViewSettings (VAR ViewSettings: ViewPortType);
Якщо скористатися нею зразу ж після ініціалізації графічного режиму, то виявиться, що графічним вікном являється весь екран.
Необхідно пам’ятати, що, на відмінну від текстових вікон, після виконання команди установки кольору фону SetBkColor і очищення екрану за допомогою SetViewPort фон графічного вікна буде таким, як і загальний фон екрану. Пому фон графічного вікна слід встановлювати за допомогою процедур SetFillPattern і Bar.