Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Рассмотрим выполнение отдельных функций по работе с текстовым экраном при помощи подпрограмм из библиотеки CRT

Использование библиотеки CRT для создания текстового пользовательского интерфейса

Вопросы для проверки знаний.

End.

Begin

Write("Vvedite chislo elementov n="); ReadLn(n);

Write("Vvedite znachenie peremennoi A="); ReadLn(A);

chT="Znachenie index i=";

WriteLn(chT, i:8);

WriteLn("Znachenie A= ",A," Znachenie B= ", B:10:2);

WriteLn(R, S:8);

Ввод и вывод структурированных величин будет рассмотрен отдельно.

1. Назовите операторы ввода в языке Паскаль.

2. Назовите операторы вывода в языке Паскаль.

3. В чем отличие пар операторов read, readln и write, writeln?

4. В чем заключается асинхронный буферизованный ввод с клавиатуры?

5. Что называют эхо-повтором при вводе с клавиатуры?

6. Можно ли с помощью оператора readln ввести с клавиатуры величину:

а) символьную, б) целую, в) логическую?

7. Можно ли с помощью оператора write вывести на экран величину:

а) символьную, б) целую, в) логическую?

8. В чем заключается форматированный вывод и в каких случаях его применяют?

Практические задания.

1. Разработать список вывода, обеспечивающий при использовании оператора Write вывод на экран для двух любых чисел a и b сообщения смешанного вида (содержащего числа и строковые величины): ” a x b = a × b ”. Например, для заданных чисел 4 и 7 должно быть получено сообщение” 4 x 7 = 28 ”.

В текстовом режиме весь экран разбит на 80х25 знакомест (25 строк по горизонтали, 80 столбцов по вертикали).

Функции работы с клавиатурой (не содержат входных параметров).

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. Коды цветов

Код Цвет Код Цвет Код Цвет
  Black (Черный)   Brown (Коричневый)   LightRed (Розовый)
  Blue (Темно-синий)   LightGray (Светло-серый)   LightMagenta (Малиновый)
  Green (Темно-зеленый)   DarkGray (Темно-серый)   Yellow (Желтый)
  Cyan (Бирюзовый)   LightBlue (Синий)   White (Белый)
  Red (Красный)   LightGreen (Светло-зеленый)   Blink =128 (Мерцание символа)
  Magenta (Фиолетовый)   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).

Процедуры работы со звуком.

1. Sound(hz: Word) - включение звукового сигнала с частотой hz Герц.

2. NoSound - выключение звукового сигнала.

Процедура ожидания.

Delay(ms: Word) - приостанавливает исполнение программы на ms миллисекунд. Практически время задержки зависит от тактовой частоты процессора ПК.

Пример кода для создания звука частотой 150 Гц в течении 0,5 секунды = 500 миллисекунд

Sound(150); { Звук с частотой 150 Гц }
Delay(500); { Задержка на 500 миллисекунд }
NoSound; { Выключение звука }

В приведенных выше примерах были рассмотрены статические методы

Практически время задержки зависит от тактовой частоты процессора ПК.

<== предыдущая лекция | следующая лекция ==>
Реализация базовых функций интерфейса по вводу и выводу данных в Паскале | От 15 февраля 2012 г
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 264; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.