Методичні рекомендації по роботі з моделум CRT

Самостійна робота з теми: Модуль CRT

Створення користувацьких модулів (16 год.)

Мета:Ознайомитись з можливостями стандатрного модуля CRT та відпрацювати іх використання при розв’язуванні задач.

 

Питання до вивчення

1. Можливості модуля CRT по робот з областю екрана.

2. Константи та змінні модуля CRT.

3. Стандартні процедури та функції модуля CRT.

4. Створення користувацьких модулів

 

Завдання

Створити користувацький модуль, використавши можливості стандартного модулю CRT, реалізувавши в ньому запропоновані нижче процедури і функції :

1. Написати процедуру “Візитка”(ім’я, прізвище і телефон), використавши в ній:

- попередню очистку екрана;

- розміщення курсору в центрі екрану;

- кольори фону і символів;

- ефект блимання символів.

 

  1. Написати процедуру “Підготовка до роботи”, використавши в ній:

- очистку екрану, заливку екрану кольором фону і розміщення курсору в точку (1,1);

- виведення назви запущеної програми;

Примітка:назва запущеної програми оформляється в процедурі як параметр-значення типу string(рядковий тип)

 

  1. Написати функцію “Запит на роботу”, використавши в ній:

- виведення з поточного місця курсору повідомлення “Ви бажаєте продовжити роботу? Введіть 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? Поясніть їх призначення.