Текстовий режим ASCII в мові Pascal

02.01.2014 0 By svvas

Текстовий режим  дозволяє виводити на екран будь-який символASCII-таблиці у визначене
знакомісце екрану, що знаходиться на перетині рядка та стовпчика. Кількість знакомісць
залежить від текстового режиму, але найчастіше дорівнює25 рядкам по80 колонок в
кожному. В цьому режимі можна керувати кольором тла та кольором і яскравістю символів,
забезпечуючи за бажанням їх миготіння.

У графічному режимі будь-яке зображення отримується як сукупність
різнокольорових точок- пікселів. Кількість елементів зображення теж задається відповідним
режимом, але стандартно дорівнює 640 на 480 пікселів по горизонталі та вертикалі.
Для роботи в текстових режимах розробниками мови програмування Паскаль були
написані спеціальні підпрограми, що об’єднані в бібліотечний модульCrt. Цей модуль може
виконувати наступні функції:
• регулювати яскравість світіння символів;
• керувати кольором зображення і тла;
• керувати текстовим курсором;
• організовувати роботу з текстовими вікнами;
• організовувати звукові ефекти;
• керувати клавіатурою
Деякі з цих підпрограм ми розглянемо нижче.
2. Процедури, які дозволяють очищати екран та керувати рядками на екрані:
ClrScr повністю очищує екран або поточне вікно і переміщує курсор у лівий верхній
кут екрана або поточного вікна(координати1,1);
ClrEol витирає всі символи в рядку, починаючи з поточної позиції курсору до кінця
рядка;
InsLine вставляє порожній рядок перед поточним рядком;
DelLine цілком вилучає вміст рядка, в якому розташований курсор, усі рядки, що
розміщені нижче, піднімаються на один рядок угору.
При роботі в текстових режимах із кольоровим дисплеєм кожний виведений на екран
символ може бути одного з16 (0-15) можливих кольорів. Тло може бути одним із8 (0-7)
кольорів. Для встановлення кольору виведених символів використовується процедура
TextColor, для встановлення кольору тла- процедура TextBackGround. Є можливість
організувати мерехтіння символів:
TextColor(Color:byte)- установити колір символів, що виводяться;
TextBackGraund(Color:byte) – установити колір тла.
Значення параметрів можуть задаватися, як константами(наприклад, Yellow), так і їх
числовими еквівалентами(наприклад, 14), повний список яких наведений у таблиці1.

0 (Black) – чорний                    8 (DarkGray) – Темно-сірий
1 (Blue) – синій                         9 (LightBlue) – світло-синій
2 (Green) – зелений                 10 (LightGreen) – світло-зелений
3 (Cyan) – блакитний               11 (LightCyan) – світло-блакитний
4 (Red) – червоний                  12 (LightRed) – світло-червоний
5 (Magenta) – фіолетовий       13 (LightMagenta) – світло-фіолетовий
6 (Brown) – коричневий          14 (Yellow) – жовтий
7 (LightGray) – світло-сірий     15 (White) – білий

Щоб додати виведеним символам ефект мерехтіння, при встановленні кольорів вказується
константа Blink(або16). Мерехтіння буде підтримуватися доти, поки не відбудеться
установка кольору символів, що виводяться, без мерехтіння.
Приклад_1:
TextColor(Yellow+Blink); Write(‘жовті символи, що миготять’);
TextColor(12+16); Write(‘світло-червоні символи, що миготять’);
TextColor(6); Write(‘коричневі символи’);
3. Процедури керування яскравістю зображення.
Всі вони діють до їх скасування, тобто до встановлення іншого режиму:
LowVideo- встановлює режим мінімальної яскравості світіння виведених на екран
символів.
NormVideo – встановлює режим нормальної яскравості світіння виведених на екран
символів. Цей режим встановлюється автоматично при ініціалізації модуля Crt.
HighVideo – установлює режим максимальної яскравості світіння.
Існує можливість у будь-який момент роботи програми використовувати для виведення
не весь екран, а деяку його частину, що називається вікном. Розмір вікна визначається
користувачем, але не може перевищувати розміру екрана. Для організації вікон у Паскалі
використовується процедура
Window(X1,Y1,X2,Y2); де X1, Y1- координати лівого верхнього, а X2, Y2- правого
нижнього кута вікна. Розмір максимального вікна(повний екран) – (1,1,80,25), мінімального-
один стовпчик на один рядок, тобто(1,1,1,1). При заданні координат вікна слідкуйте за тим,
щоб вони не виходили за розміри екрану.
На екрані можуть знаходитися кілька вікон, але в поточний момент активним являється
тільки одне з них, і всі дії, що програмуються користувачем, виконуються щодо поточного
вікна.
Для формування складного зображення на екрані при виведенні інформації користувач
повинен мати можливість переводити курсор у будь-яку позицію екрана. Для цього в мові
Паскаль передбачені наступні процедури і функції:
4. Процедури керування текстовим курсором.
GoToXY(X,Y:byte)- процедура переводить курсор у задану позицію екрану(або вікна) з
координатами Х(стовпчик), Y(рядок); верхній лівий кут екрана має координати(1,1), а
правий нижній в стандартному режимі(80,25);
WhereХ, WhereY- функції, що дозволяють одержати відповідні значення X- або Y-
координати курсору щодо поточного вікна. Діапазон значень, що повертаються, визначається
розмірами поточного вікна або повного екрана.
Приклад2:
Написати фрагмент програми, що виведе в середині екрану прізвище учня червоним
кольором, а на наступному рядочку під прізвищем- ім’я жовтим кольором. Прізвище
необхідно вивести підвищеною яскравістю, а ім’я з мерехтінням. Колір тла повинен бути
синім.
program Ex_2;
uses crt;
begin
textbackground(blue); {встановлення кольору тла}
clrscr; {очищення екрану цим кольором}
highvideo; {встановлення підвищеної яскравості зображення}
textcolor(red); {встановлення кольору виведення}
gotoxy(35,12); {переведення курсору в задану точку–
центр екрану}
writeln(‘Ivanov’); {виведення прізвища}
normvideo;
textcolor(yellow+blink); {встановлення кольору виведення
зображення з мерехтінням}
gotoxy(35,13);
writeln(‘Petro’);
end.
В текстовому режимі операторами виведення можна виводити на екран будь-який
символASCIIтаблиці, навіть той, що відсутній на клавіатурі. В цьому випадку його можна
вивести або за допомогою символу# з наступнимASCII-кодом символу, або шляхом
набиранняASCII- коду необхідного символу на додатковій цифровій клавіатурі при
натиснутій клавіші Alt.
Наприклад, один той самий симво딤” можна вивести на екран так:
Writeln(‘¤’); – символ отриманий одночасним натисканням клавішAlt+<ASCII код
символу>
Writeln(#253);
За допомогою таких псевдографічних символів можна отримати нескладний малюнок,
схожий на всім відомий”японський кросворд”, а також різного виду таблиці, рамки(дивись
повний набір псевдографічних символівASCII-таблиці у Додаток1).
Приклад3:
Написати фрагмент програми, що виведе на екран вікно рожевого кольору і текст у
центрі вікна жовтого кольору з мерехтінням.
program Ex_3;
uses crt;
begin
textbackground(white); {встановлення кольору тла}
clrscr; {очищення екрану цим кольором}
textbackground(magenta); {встановлення кольору тла вікна}
window(14,4,44,20); {задали вікно}
clrscr; {очищення вікна цим кольором}
textcolor(yellow+blink); {встановлення кольору тексту}
gotoxy(12,9); {переведення курсору у центр вікна}
writeln(‘HELLO !!!’); {виведення тексту}
end.
Поряд із підпрограмами організації роботи з екраном модульCrt включає засоби
керування звуком. У персональних ЕОМ є можливість генерувати звукові сигнали за
допомогою вбудованого динаміка частотою37 – 32767 Гц. Гучність звуку не регулюється.
Стандартний звуковий сигнал(“біп”) постійної тривалості(0.25 с) і частоти(800 Гц)
викликається сьомим символом(^G) кодової таблиціASCII. Наприклад: writeln(‘помилка в
даних’,^G);
5. Процедури керування частотою звуку і його тривалістю.
sound(І)- активізує звукові засоби ПЕОМ. Ціле значенняI вказує частоту звучання
звука в герцах. Звук зазначеної частоти буде генеруватися доти, поки не буде
скасований процедурою NoSoud;
NoSound- скасування звуку. Скасовує звуковий режим, заданий процедурою Sound;
Delay(I)- вказує час, у продовж якого лунає сигнал.
Приклад4:
.Program Zvuk;
Begin
Sound(500);
Delay(2000);
NoSound
End.
У даному прикладі звуковий сигнал частотою500 Гц буде звучати2 секунди(2000 мс).
За допомогою цих процедур можна створити найрізноманітніші звукові ефекти. Для цього
використовується набір частот, що відповідають нотам різних октав:
Нота Велика октава Мала октава Перша октава Друга октава
До 130.81 261.63 523.25 1046.50
Ре 146.83 293.66 587.33 1174.07
Мі 164.81 329.63 659.26 1318.05
Фа 174.61 349.23 698.46 1396.09
Соль 196.00 392.00 784.99 1568.00
Ля 220.00 440.00 880.00 1760.00
Сі 246.94 493.88 987.77 1975.00
Для використання в процедурі Sound усі зазначені в таблиці значення частот округлюються.
Приклад5:
Для виконання за допомогою вбудованого динаміка відомої дитячої пісеньки”Ялинка”
необхідно написати таку лінійну програму.
program muzika;
uses crt;
begin
sound(785);
delay(10000);
nosound;
sound(659);
delay(5000);
nosound;
sound(659);
delay(5000);
nosound;
sound(785);
delay(10000);
nosound;
sound(659);
delay(5000);
nosound;
sound(659);
delay(5000);
nosound;
sound(785);
delay(5000);
nosound;
sound(698);
delay(5000);
nosound;
sound(659);
delay(5000);
nosound;
sound(587);
delay(5000);
nosound;
sound(523);
delay(20000);
nosound;
sound(785);
delay(10000);
nosound;
sound(1046);
delay(5000);
nosound;
sound(880);
delay(5000);
nosound;
sound(785);
delay(10000);
nosound;
sound(659);
delay(5000);
nosound;
sound(659);
delay(5000);
nosound;
sound(785);
delay(5000);
nosound;
sound(698);
delay(5000);
nosound;
sound(659);
delay(5000);
nosound;
sound(587);
delay(5000);
nosound;
sound(523);
delay(20000);
nosound;
end.

Comments

comments