Методичні рекомендації по роботі з моделум CRT
Самостійна робота з теми: Модуль CRT
Створення користувацьких модулів (16 год.)
Мета:Ознайомитись з можливостями стандатрного модуля CRT та відпрацювати іх використання при розв’язуванні задач.
Питання до вивчення
1. Можливості модуля CRT по робот з областю екрана.
2. Константи та змінні модуля CRT.
3. Стандартні процедури та функції модуля CRT.
4. Створення користувацьких модулів
Завдання
Створити користувацький модуль, використавши можливості стандартного модулю CRT, реалізувавши в ньому запропоновані нижче процедури і функції :
1. Написати процедуру “Візитка”(ім’я, прізвище і телефон), використавши в ній:
- попередню очистку екрана;
- розміщення курсору в центрі екрану;
- кольори фону і символів;
- ефект блимання символів.
- Написати процедуру “Підготовка до роботи”, використавши в ній:
- очистку екрану, заливку екрану кольором фону і розміщення курсору в точку (1,1);
- виведення назви запущеної програми;
Примітка:назва запущеної програми оформляється в процедурі як параметр-значення типу string(рядковий тип)
- Написати функцію “Запит на роботу”, використавши в ній:
- виведення з поточного місця курсору повідомлення “Ви бажаєте продовжити роботу? Введіть Y(так) або N(ні)”
Примітка:результатом функції буде символ (тип char). При поверненні результату в основну програму забезпечити перехід на початок програми у випадку результату “Y” або в кінець (якщо результат “N”). Це робиться за допомогою міток та оператора безумовного переходу goto.
-
Записати створений модуль у відповідний файл та продемонструвати його роботу, підключивши його до власних програм
Примітка:ім.’я файлу повинно співпадати з іменем модулю.
Методичні рекомендації по роботі з моделум CRT
Одним із стандартних модулів, які використовуються при роботі з Turbo Pascal 7.0 є модуль CRT. При роботі з екраном через модуль CRT весь екран розбивається на окремі рядки, а кожен рядок - на окремі позиції, в кожну з яких можна помістити один символ (у тому числі і пробіл). Таким чином, весь екран розбивається на окремі неподільні прямокутні елементи. Для кожного елемента можна задати колір фону (задній план) і колір символа (передній план). Крім того, в разі необхідності, символ можна зробити мигаючим.
Модуль CRT дозволяє не тільки працювати з усім екраном, але й виділяти у ньому прямокутні вікна. Будь-яке вікно задається своїми лівим верхнім та нижнім правим кутами. Ці кути, так само як і положення будь-якої точки екрану, задаються двома координатами: X і Y.
Координатою X є номер позиції у рядку (нумерація починається з одиниці і йде зліва направо), а координатою Y виступає номер рядка (нумерація починається з одиниці і йде зверху вниз). При роботі у вікні координати беруться від лівого верхнього кута у вікні. Якщо режим адаптера - 25 рядків по 80 позицій, то координати такого вікна - (1,1) і (80,25).
Таблиця 16.5. Константи модуля CRT.
Ім’я | Значення | Призначення | |
Коди режимів для процедури Text Mode | |||
BW40 | 40´25 чорно-білий для кольорового адаптера | ||
BW80 | 80´25 чорно-білий для кольорового адаптера | ||
CO40 | 40´25 кольоровий для кольорового адаптера | ||
CO80 | 80´25 кольоровий для кольорового адаптера | ||
FONT 8´8 | EGA/VGA 43 і 50 рядків | ||
MONO | 80´25 для монохромного адаптера | ||
C40 | CO40 | Для сумісності з версією 3.0 | |
C80 | CO80 | Для сумісності з версією 3.0 | |
Коди кольорів | |||
Black | Чорний | ||
Blue | Синій | ||
Green | Зелений | ||
Cyan | Блакитний | ||
Red | Червоний | ||
Magenta | Фіолетовий | ||
Brown | Коричневий | ||
Light gray | Світло-сірий | ||
Dark gray | Темно-сірий | ||
Light blue | Світло-синій | ||
Light green | Світдо-зелений | ||
Light cyan | Світло-блакитний | ||
Light red | Рожевий | ||
Light magenta | Світло-фіолетовий | ||
Yellow | Жовтий | ||
White | Білий | ||
Blink | Мигання символу | ||
Кольори з кодами від 0 до 7 включно можна використовувати як для символів так і для фону. Інші кольори і код мигання можна використовувати для символів.
Тадлиця 2. Змінні модуля CRT.
Ім’я | Тип | Призначення |
Check break | Boolean | Дозволення аналізу Ctrl+Break |
Check eof | Boolean | Дозволення розміщення кінця файлу |
Check Snow | Boolean | Дозволення погашення “снігу” |
Direct video | Boolean | Дозволення прямої адресації відеопам’яті |
Last mode | Word | Поточний текстовий режим |
Text attr | Byte | Поточні атрибути тексту |
Wind min | Word | Координати лівого верхнього кута вікна |
Wind max | word | Координати правого нижнього кута вікна |
Змінна Check Break керує реакцією програми на комбінацію клавіш Ctrl+Break. Якщо ця змінна рівна true, комбінація Ctrl+Break викликає зупинку роботи програми, в іншому випадку ніякої реакції на цю комбінацію не виникає. Змінна Check Eof керує розміщенням признаку кінця файлу. Якщо ця змінна рівна true, комбінація клавіш Ctrl+Z відмічає у файлі признак кінця файлу, в іншому випадку ця комбінація не має ніякої дії. Змінна Check Snow дозволяє або забороняє (True або False) заглущення “снігу” на екрані. Змінна DirectVideo дозволяє або забороняє безпосередній запис інформації у відеопам’ять. У змінній LastMode знаходиться значення текстового режиму, встановленого процедурою TextMode. Змінна TextAttr містить встановлені атрибути (колір фону і символів) тексту. В змінних WindMin і WindMax знаходяться координати верхнього лівого і правого нижнього кута вікна.
Процедури модуля CRT.
Procedure ClrScr очищує активне вікно, заповнює його кольором фону, і розміщує курсор в його верхній лівий кут з координатами (1,1). Колір фону задається процедурою Text Background.
Procedure ClrEol знищує всі символи від курсору (включно) до кінця рядка і заповнює цю область рядка кольором фону. Колір фону задаеться процедурою textdackgraund.
Procedure delay (ms:word) задае затримку виконання програми в ms мілісекундю. Ms-вираз, що визначае величину затримки в мілісекундах.
Procedure Dellyn знищує рядок, в якому знаходиться курсор.
Procedure GotoXY(х,у:byte) переносить курсор до елементу екрану(координати беруться від лівого верхнього кута поточного вікна). Якщо хочаб одна з координат не допустима, процедура не віконується.
Procedure TextBackground (color:byte) задає колир фону. Color – змінна, що містіть код кольору фону.
Procedure Textcolor (color:byte) задає колір символів. Color – змінна, що містіть код кольору символу.
Функції модуля CRT.
Function KeyPressed: boolean аналізує натиск клавіші клавіатури (за виключенням допоміжних клавіш Shift, Alt, NutLock і т.п.).Результ – true якщо клавіша на клавіатурі натиснута, і false - в іншому випадку.
Function Readkey: char зчитує з клавіатури символ і звільняє буфер клавіатури від зчитаного символу.
Function WhereX: byte повертає поточну координату Х курсору.
Function WhereУ: byte повертає поточну координату Укурсору.
Методичні рекомендації до створеня власного модулю
Модуль поділяється на декілька розділів: заголовок, інтерфейсна частина, реалізаційна частина, ініціалізацій на частина (наведено нижче).
Заголовок модуля
Заголовок модулю відрізняється від заголовку програм лише словом UNIT замість PROGRAM.
При виборі імені модулю слід пам’ятати, що воно повинно обов’язково співпадати з іменем файлу, в якому він буде збережено. При цьому файлу необхідно прописати розширення *.TPU.Перед тим, як зберігати файл обов’язково потрібно зайти у відповідну директорію Option/Directoriesі у відповідному вікні в рядку Unit directories прописати шлях, де буде збережено модуль (як зазвичай це той же шлях, де зберігаються і користувацькі файли) (мал.. 1)
Структура модуля
ЗАГОЛОВОК МОДУЛЯ | |
UNIT | Ім.’я модуля |
ІНТЕРФЕЙСНА ЧАСТИНА | |
INTERFACE | Початок розділу об’яв |
uses | Модулі, що підключаються |
label | мітки |
const | константи |
type | типи |
var | змінні |
procedure | Заголовки доступних процедур |
function | Заголовки доступних функцій |
РЕАЛІЗАЦІЙНА ЧАСТИНА | |
IMPLEMENTATION | Початок розділу реалізації |
uses | Модулі, що підключаються |
label | мітки |
const | константи |
type | типи |
var | змінні |
procedure | Тіла доступних процедур |
function | Тіла доступних функцій |
ІНІЦІАЛІЗАЦІЙНА ЧАСТИНА | |
BEGIN | Основний блок модулю |
END | |
Інтерфейсна частина
В ній описуються всі константи, типи, змінні, процедури та функції, доступні в цьому модулі для використання зовнішніми програмами. На практиці можливо, коли інтерфейс на частина взагалі нічого не містить.
Примітка. Всі процедури та функції, доступні для використання повинні описуватись в інтерфейсній частині рядком-заголовком з вказанням типів параметрів. Сам текст цих процедур і функцій (з дуплікатом їх заголовку) знаходиться в реалізаційній частині.
Реалізаційна частина
Це частина, в якій визначаються процедури і функції. Визначені тут константи, змінні і типи даних недоступні зовні. Також як і інтерфейс на частина, вона може бути пустою.
Ініціалізаційна частина
Являє собою основний блок модуля. Наведені в ній оператори виконуються першими. Може бути пустим.
Після набору тексту модуля його потрібно відкомпілювати, при цьому компілятор видасть повідомлення, що модуль не може бути виконано. Після цього модуль зберігаємо, як указано вище і він готовий до підключення у користувацьких програмах.
Питання для самоконтроля
1. Які ви знаете константи модуля Crt? Поясніть їх призначення.
2. Які ви знаете змінні модуля Crt? Поясніть їх призначення.
3. Які ви знаете процедури модуля Crt? Поясніть їх призначення.
4.Які ви знаете функції модуля Crt? Поясніть їх призначення.