
- •4. Составной Оператор. Понятия функции и процедуры. Пользовательский интерфейс, Структура программ на языке Паскаль
- •4.1. Составной оператор, понятия функции и процедуры в языке Паскаль
- •4.2. Понятие интерфейса пользователя. Средства создания текстового пользовательского интерфейса в Паскале
- •4.3. Реализация базовых функций интерфейса по вводу и выводу данных в Паскале
- •4.4. Использование библиотеки crt для создания текстового пользовательского интерфейса
- •Рассмотрим выполнение отдельных функций по работе с текстовым экраном при помощи подпрограмм из библиотеки crt.
- •Процедуры работы со звуком.
- •Процедура ожидания.
- •4.5. Общая структура программы на Паскале. Комментарии
- •4.6. Содержание подразделов в разделе описаний
- •4.7. Простейшие программы на языке Паскаль для обработки данных простых типов. Основная задача программы и ее интерфейс
- •III. Тело алгоритма.
- •5. ОРганизация ветвлений
- •5.1. Полный и сокращенный оператор if
- •If условие then оператор 1 else оператор 2;
- •If условие then оператор 1;
- •5.2. Полный и сокращенный оператор case
- •5.3. Оператор безусловного перехода goto. Пример программы с использованием ветвления
- •Календарный план семинаров (18 семинаров - 36 час)
- •Указатели в Паскале. Динамическая память на языке Паскаль
- •Ссылочные типы. Указатели в Паскале
- •Операции с указателями
- •Процедуры и функции для работы с указателями и адресами в Паскале
4.4. Использование библиотеки crt для создания текстового пользовательского интерфейса
В текстовом режиме весь экран разбит на 80х25 знакомест (25 строк по горизонтали, 80 столбцов по вертикали).
Рассмотрим выполнение отдельных функций по работе с текстовым экраном при помощи подпрограмм из библиотеки crt.
Функции работы с клавиатурой (не содержат входных параметров).
KeyPressed. Возвращает значение типа Boolean, указывающее состояние буфера клавиатуры: False означает, что буфер пуст, a True - что в буфере есть хотя бы один символ, еще не прочитанный программой.
ReadKey. Возвращает значение типа Char, которое равно содержимому буфера клавиатуры. Если он пуст, функция ожидает нажатия на любую клавишу. В отличие от read и readln ввод не сопровождается эхо-повтором вводимых символов на экране.
Функция ReadKey часто используется в конце программы для того, чтобы сохранить на мониторе содержание пользовательского экрана до тех пор, пока пользователь не оценит результаты расчета и не нажмет какую-нибудь клавишу для возврата в основное оно программы.
Процедуры задания цвета выводимых символов и фона.
1.TextColor(Color: Byte). Определяет цвет выводимых символов.
2. TextBackground(Color: Byte). Определяет цвет фона.
Единственным параметром процедур является цвет, имеющий тип Byte. Его можно задать по наименованию либо с помощью нужного числового кода, соответствие их дано в Таблице 4.1.
Примеры:
TextColor(7); { Светло-серый}
TextColor(LightGray); { Светло-серый}
TextColor(White+Blink); {Белые мигающие символы}
Таблица 4.1. Коды цветов
Код |
Цвет |
Код |
Цвет |
Код |
Цвет |
0 |
Black (Черный) |
6 |
Brown (Коричневый) |
12 |
LightRed (Розовый) |
1 |
Blue (Темно-синий) |
7 |
LightGray (Светло-серый) |
13 |
LightMagenta (Малиновый) |
2 |
Green (Темно-зеленый) |
8 |
DarkGray (Темно-серый) |
14 |
Yellow (Желтый) |
3 |
Cyan (Бирюзовый) |
9 |
LightBlue (Синий) |
15 |
White (Белый) |
4 |
Red (Красный) |
10 |
LightGreen (Светло-зеленый) |
128 |
Blink =128 (Мерцание символа) |
5 |
Magenta (Фиолетовый) |
11 |
LightCyan (Светло-бирюзовый) |
|
|
Все цветовые настройки предварительно заносятся в специальную переменную TextAttr модуля CRT и используются для в выводе только при обращении к процедурам Write или WriteLn.
Процедуры очистки экрана, окна или отдельных строк (не содержат входных параметров).
1. ClrScr - очистка всего экрана или окна, после обращения к ней они заполняются установленным цветом фона и курсор устанавливается в левом верхнем углу.
2. ClrEol - очистка текущей строки - от текущей позиции курсора до правого края экрана (окна).
3. DelLine - удаление строки, в которой находится курсор.
4. InsLine - очистка текущей строки целиком, курсор остается на прежней позиции.
Пример использования ClrScr:
TextBackground(red); {Установка красного цвета фона}
ClrScr;{Заполнение экрана красным цветом}
Процедура Window задания окна (активной области ввода/вывода) - прямоугольной области экрана, в которую осуществляется весь вывод. Сразу после вызова процедуры курсор помещается в левый верхний угол окна, а само окно очищается (заполняется цветом фона). По мере вывода курсор, как обычно, смещается вправо и при достижении правой границы окна переходит на новую строку, а если он к этому моменту находился на последней строке, содержимое окна сдвигается вверх на одну строку, т.е. осуществляется «прокрутка» окна. Обращение имеет вид:
Window(XI,Y1,X2,Y2: Byte);где (XI,Y1) - координаты левого верхнего (X2,Y2) - правого нижнего углов окна.
В координатах экрана левый верхний угол экрана имеет координаты (1,1), горизонтальная координата увеличивается слева направо, а вертикальная - сверху вниз.
Обращение к процедуре Window игнорируется, если какая-либо из координат выходит за границы экрана или если нарушается одно из условий: Х2>Х1 и Y2>Y1. Каждое новое обращение к Window отменяет предыдущее определение окна.
Пример задания окна с границами (XI, Y1) =(20, 5) и (X2, Y2) = (90,35):
Window(20,5,90,35);
Границы текущего окна запоминаются в двух глобальных переменных модуля CRT: переменная WindMin типа Word хранит X1 и Y1 (XI - в младшем байте), а переменная того же типа WindMax - Х2 и Y2(X2 - в младшем байте). В отличие от обращения к Window координаты, хранящиеся в переменных WindMin и WindMax, соответствуют началу отсчета (0,0).
Процедуры и функции работы с курсором. Процедура GotoXY переводит курсор в нужное место экрана или текущего окна, которое задается координатами X,Y. Обращение к GotoXY игнорируется, если задаваемые координаты X,Y выходят за границы экрана (окна).
Пример. Перевод курсора в точку с координатами X=2, Y=6:
GotoXY(2,6);
Функции WhereX и WhereY возвращают, соответственно, горизонтальную и вертикальную координаты курсора (значения типа Byte).