- •Історична довідка
- •Характеристика й особливості мови
- •Алфавіт мови
- •Службові (зарезервовані) слова.
- •Структура програми мови Turbo Pascal
- •Розділ оголошень і угод
- •Розділ текстів процедур і функцій
- •Розділ основного блоку програми
- •Процедури введення-виведення. Деякі вбудовані функції Турбо-Паскаля.
- •Функції числових параметрів.
- •Базові управляючі конструкції Турбо-Паскаля Оператори умовного переходу.
- •1. Оператор if.
- •2. Оператор вибору (case)
- •Оператори циклів у Паскалі
- •1. Цикл із післяумовою (Repeat)
- •2. Цикл із предумовою (While)
- •3. Цикл із лічильником або параметром (For)
- •Концепція типів даних. Типи даних в мові Pascal
- •Дійсні типи
- •Бульовий (логічний) тип
- •Символьні і рядкові змінні
- •1. Символьний тип
- •2. Рядковий тип
- •Перерахований та обмежений типи
- •1. Перерахований тип
- •2. Обмежений тип
- •1. Поняття масиву. Одномірні масиви
- •2. Багатомірні масиви
- •3. Сортування і пошук
- •Множинний тип
- •Тип запис
- •Процедури і функції
- •Формальні і фактичні параметри. Механізм параметрів
- •Параметри - значення
- •Параметри-змінні
- •Безтипові параметри
- •Приведення типів.
- •Процедурні типи
- •Рекурсія Рекурсивні визначення
- •Рекурсивні підпрограми
- •Алгоритми з поверненням. Розв’язок задачі про рух коня
- •Алгоритми з поверненням. Розв’язок задачі про вісьмох ферзів
- •If підходить тнеn
- •Модулі в Турбо Паскалі
- •Модуль crt
- •1. Керування екраном
- •2. Робота з клавіатурою
- •3. Інші можливості
- •Графіка в Турбо Паскалі
- •1. Включення і вимикання графічного режиму.
- •2. Побудова елементарних зображень
- •3. Виведення текстової інформації.
- •Файли в мові програмування Pascal
- •Установчі і завершальні операції
- •Операції введення-виведення
- •Обробка помилок введення-виведення
- •Переміщення по файлу
- •Спеціальні операції
- •Текстові файли
- •1. Оголошення файлової змінної і прив'язка до файлу на диску
- •2. Читання даних з файлу
- •3. Запис даних у файл
- •Двійкові файли
- •1. Типізовані файли
- •2. Нетипізовані файли
- •Статичні і динамічні змінні
- •Покажчики
- •Стан покажчика
- •Установка розмірів динамічної пам'яті
- •Сумісність і перетворення посилкових типів
- •Динамічні структури даних
- •Динамічні змінні: інші види списків, стек і черга.
- •1. Інші види списків
- •2. Стек і черга
- •Дерева і пошук у деревах
- •1. Визначення й описи структур даних
- •1. Масив
- •2. Список
- •3. Дерево
- •2. Алгоритми
- •1. Лінійний пошук у масиві
- •2. Двійковий пошук
- •3. Лінійний пошук у списку
- •Змішані таблиці
- •Об’єктно-орієнтоване програмування. Що таке об’єктно-орієнтоване програмування
- •Інкапсуляція
- •Спадкування
- •Віртуальні методи і поліморфізм
- •Конструктори, динамічні об'єкти і деструктори
- •Поля і методи: сховані і загальнодоступні
- •Системно- залежні розширення
- •Налагодження змінних
- •Оверлеї
- •Переривання і системні виклики
- •Доступ до пам'яті і портів
- •Перевизначення переривань
Модуль crt
Модуль CRT - набір засобів для роботи з екраном у текстовому режимі, клавіатурою і для керування звуком. Для того щоб використовувати ці засоби потрібно після заголовка програми записати: uses CRT;.
1. Керування екраном
У текстовому режимі екран представляється розбитим на маленькі прямокутники однакового розміру, у кожнім з який може знаходитися який-небудь символ з набору ASCII. Для символів можна задавати колір самого символу і колір прямокутника, у якому він малюється (колір фону). Рядка екрана нумеруються зверху вниз, а стовпці зліва на право, нумерація і рядків, і стовпців починається з одиниці.
Найбільш поширеним у даний час є текстовий режим 80x25 при 16 можливих кольорах тексту і фону. Багато графічних адаптерів дозволяють використовувати інші режими, наприклад: 40x25, 80x43, 80x50 і т.д.
У керуванні текстовим екраном важливу роль грає курсор. Виведення символів на екран (тобто write і writeln) здійснюється починаючи з позиції курсору, коли всі символи виведені, курсор зупиняється в наступній позиції після останнього символу. Уведення також буде виконуватися починаючи з позиції курсору.
Нижче приведені основні процедури і функції для керування екраном у текстовому режимі.
Назва |
Призначення |
InsLine |
Вставити рядок у те місце де знаходиться курсор, усі рядки нижче курсору ззміщюються вниз на одну позицію. Курсор залишається на тім же місці. |
DelLine |
Видалити рядок у позиції курсору. Курсор залишається на тім же місці. |
GotoXY(x,y: byte) |
Перемістити курсор у позицію (x,y); x — номер рядка, y — номер стовпця. |
ClrEOL |
Очистити рядок від курсору і до правого краю екрана. Курсор залишається на колишнім місці |
HighVideo |
Установлює підвищену яскравість для виведення тексту |
LowVideo |
Знижена яскравість |
NormVideo |
Нормальна яскравість |
TextColor(color: byte) |
Установлює колір для виведення тексту. Значення кольорів — лежить в межах від 0 до 15. Замість цих чисел можна вказувати й існуючі константи (black, white, red, green, blue, magenta, cyan, brown, lightgray і т.п.). При необхідності можна змусити текст мерехтіти додаючи до номера кольору число 128 чи константу Blink. |
TextBackGround(color: byte) |
Установлює колір для фону. |
ClrScr |
Очистити екран і помістити курсор у лівий верхній кут, тобто в позицію (1,1) — 1-я рядок, 1-й стовпець. При очищенні екран заповнюється кольором фону (див. TextBackground) |
Where: byte |
Ця функція повертає номер рядка, у якій знаходиться курсор. |
Where: byte |
Номер стовпця, у якому знаходиться курсор |
2. Робота з клавіатурою
При роботі з клавіатурою комп'ютер поміщає всю інформацію про натискання клавіш у чергу доти, поки ця інформація не буде потрібна програмі (наприклад, для виведення на екран, для руху об'єктів в іграх і т.п.). Для роботи з клавіатурою важливі 2 функції:
KeyPressed: boolean — повертає true, якщо черга клавіатури не порожня (тобто була натиснута деяка клавіша). Найпростіший приклад використання — повторювати деякі дії, поки не натиснута клавіша: repeat ... until KeyPressed;.
ReadKey: char — повертає символ, що відповідає натиснутій клавіші (з черги клавіатури). Якщо користувач натиснув клавішу, для якої мається код ASCII, то в чергу буде покладений один відповідний символ, а якщо це спеціальна клавіша (F1, F2, ... F12, клавіші керування курсором, Ins, Del, Home, End, PgUp, PgDn), те спочатку в чергу буде покладений символ з кодом 0, а потім додатковий символ. Якщо черга клавіатури порожня, то Readkey буде чекати, поки користувач не натисне яку-небудь клавішу.
Для демонстрації роботи ReadKey можна написати таку програму:
uses Crt;
var c: char;
begin
repeat
c:=ReadKey;
writeln(ord(c));
until c=#27 {клавіша Escape};
end.
При натисканні перерахованих вище спеціальних клавіш ця програма буде виводити по два коди відразу.