Главная/Раздел 3

 

 

Главная

 

 Раздел 1

 

Раздел 2

 

Раздел 3

 

Раздел 4

 

Раздел 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Модуль CRT.
Работа с клавиатурой и экраном

Язык Паскаль, названный в честь французского математика и философа Блеза Паскаля (1623-1662), был создан как учебный язык программирования в 1968-1971 годах Никлаусом Виртом в Высшей Технической Школе в Цюрихе. В настоящее время этот язык имеет более широкую сферу применения, чем предусматривалось при его создании, но произошло это не сразу. В 1971 году Н. Вирт выпустил описание своего языка, а в 1975 г. было разработано руководство для пользователей версии Паскаля, практически ставшее основой стандарта. Только в 1982 году появился международный стандарт ISO на язык Паскаль. Действительно популярным этот язык стал благодаря фирме Borland, разработавшей на его базе семейство Паскаль-систем, называемых Turbo Pascal. После последовательного выпуска шести версий Turbo Pascal, в 1992 году фирма Borland International выпустила два пакета программирования, основанные на использовании языка Паскаль, - Borland Pascal 7.0 и Turbo Pascal 7.0, изучением которого мы занимаемся. Итак, система программирования Turbo Pascal является очень удачным "расширением" стандартного Паскаля. Но что же значит расширение? Turbo Pascal 7.0 имеет большое количество стандартных подпрограмм и данных, объединённых в несколько так называемых "стандартных модулей". Вот их перечень:

(*)  System  - основная библиотека;
     Strings - работа с ASCIIZ-строками;
(*)  Crt     - работа с консолью;
     Graph   - графическая библиотека;
(*)  Dos     - использование возможностей DOS;
     WinDos  - использование возможностей DOS и ASCIIZ-строк;
(*)  Overlay - организация оверлейных структур;
(*)  Printer - работа с принтером;
     Turbo3  - совмещение с программами Turbo Pascal 3.0;
     Graph3  - совмещение с графикой Turbo Pascal 3.0;

Модули отмеченные (*) содержатся в файле Turbo.TPL. Остальные - в отдельных файлах с такими (как модули) именами с расширением TPU. С одним из перечисленных выше модулей Вы уже работали, - это модуль Graph. Для того, что бы использовать процедуры и функции, входящие в этот модуль, необходимо его сначала "подключить" следующим образом:

     Uses Graph;

Точно так же подключаются и все остальные модули, все, кроме модуля System. Модуль System всегда подключён по умолчанию. Именно в нём находятся те процедуры и функции, которые составляют ядро системы программирования Turbo Pascal. Остальные модули составляют ту часть процедур и функций, которую мы называем "расширением" стандартного Паскаля.

Модуль CRT.

Модуль CRT (Cathod ray tube - электронно-лучевая трубка) один из наиболее часто используемых. Он содержит процедуры обслуживания процессов вывода информации на экран, ввода с клавиатуры, а также процедуры и функции вывода звуковых сигналов, работы с окнами на экране и вывода цветных текстовых строк на экран.

При работе с экраном через модуль CRT весь экран разбивается на отдельные строки, а каждая строка - на отдельные позиции, в каждую из которых можно поместить один символ (в том числе и пробел). Таким образом весь экран разбивается на отдельные неделимые прямоугольные эле- менты. Для каждого элемента можно задать цвет фона (задний план) и цвет символа (передний план). Кроме того, в случае необходимости символ можно сделать мерцающим.

Система координат.

   (1,1)
     +---------------------- X
     ¦
     ¦
     ¦
     
     Y

На экране устанавливается система координат. Ось X направлена вправо, ось Y вниз. В отличии от графического режима (модуль Graph), в текстовом режиме (модуль CRT) верхний левый угол имеет координаты не (0,0) а (1,1).

Процедуры задания режимов работы.

TextMode(t)

     Задание текстового режима.
     Возможные значения переменной t:
     t   значение                                 
     0   40x25 ч/б для цветного адаптера   
     2   80x25 ч/б для цветного адаптера   
     1   40x25 цветной                             
     3   80x25 цветной                             
   256  EGA/VGA 43 и 50 строк                 

HighVideo 

Устанавливает высокую яркость символов (заменяет цвета 0-7 на цвета 8-15), выводимых далее на экран.

LowVideo

Устанавливает малую яркость символов (заменяет цвета 8-15 на цвета 0-7), выводимых далее на экран.

NormVideo

Устанавливает первоначальную яркость символов, выводимых далее на экран.

TextBackGround(color)

Задаёт цвет фона. Color может принимать значение только 0-7.

TextColor(color)

Задаёт цвет символа.

Процедуры работы с экраном

ClrEol

Удаляет все символы от курсора (включительно) до конца строки, заполняя этот участок текущим цветом фона.

ClrScr

Очищает текущее окно заполняя его текущим цветом фона и помещает курсор в его верхний левый угол с координатами (1,1).

DelLine

Удаляет строку, в которой находится курсор.

GotoXY(X,Y)

Перемещает куррсор к элементу окна с заданными координатами. Если хотя бы одна из координат недопустима, процедура не выполняется.

InsLine

Вставляет пустую строку на экране в месте расположения курсора и заполняет её текущим цветом фона.

Window(X1,Y1,X2,Y2)

Задаёт размеры окна на экране и помещает курсор в левый верхний угол окна с координатами (1,1). Если хотя бы одна из координат недопустима, процедура не выполняется.

Функции работы с экраном.

WhereX :integer

Возвращает текущую координату X курсора.

WhereY :integer

Возвращает текущую координату Y курсора.

Функции работы с клавиатурой.

KeyPressed :boolean

Анализирует нажатие клавиши клавиатуры (за исключением вспомогательных клавиш - Shift, Alt, NumLock и т.п.) Результат - True, если клавиша на клавиатуре нажата, и False в противном случае.

ReadKey :char

Считывает символ с клавиатуры и освобождает буфер клавиатуры от считанного символа.

Процедуры управления звуком.

Sound(Hz)

Запускает источник звука с частотой Hz герц.

NoSound

Выключает источник звука.

Процедуры разнообразного назначения.

Delay(Ms)

Задаёт задержку выполнения программы в Ms миллисекунд.

AssignCrt(F)

Связывает текстовый файл F с устройством Crt.

Контрольные вопросы.

  1. Какие устройства обслуживают и какими процессами управляют процедуры и функции модуля CRT?
  2. Какую операцию необходимо выполнить для того, что бы использовать процедуры и функции модуля CRT в программе?
  3. Какие текстовые режимы вы знаете?
  4. Какая система координат принята в текстовом режиме?
  5. Сколько цветов можно использовать для цвета фона?
  6. Сколько цветов можно использовать для цвета символов?
  7. Опишите процедуры управления цветом.
  8. Опишите процедуры и функции работы с экраном.
  9. Опишите функции работы с клавиатурой.
  10. Опишите процедуры работы со звуком.

Задания для самостоятельного выполнения.

  1. Выведите своё имя, посредине экрана, мигающим красным цветом в небольшом прямоугольнике серого цвета. Озвучите начало выполнения программы.
  2. Выведите своё имя разными цветами да на разном фоне по главной диагонали экрана. Озвучите начало выполнения программы.
  3. Разделите экран монитора на две части по вертикали. Выведите своё имя в левой части серым цветом на синем фоне, а в правой части синим цветом на сером фоне. Озвучите конец выполнения программы.
  4. Шахматное поле. Разделите экран монитора на 40 клеток (5x8) окрашенных в чёрный и серый цвет.
  5. Напишите программу, которая по введённым с клавиатуры данным выводила бы ваше имя на экране монитора. Вводимые данные: цвет символов, цвет экрана, координаты, мигание, продолжительность работы программы.
  6. Пирамида сверху. Напишите программу, которая разделит экран на последовательность вложенных разноцветных прямоугольников. Озвучите конец выполнения программы.
  7. "Бегущая строка". Посредине чёрного экрана строка синего цвета с бегущим справа налево вашим именем. Программа прекращает работу по нажатию любой клавиши.
  8. Выведите посредине экрана своё имя, высотой в 8 строк, состоящее из разноцветных звёздочек.
  9. Разделить экран на 4 разноцветных части, и в каждой из них вывести число 53 высотой в 5 символов.
  10. Изобразите на экране пирамиду сбоку, состоящую из разноцветных ступеней. В центре каждой разместите своё имя из разноцветных символов.

НАЗАД                   

 

 

 

 

 

 

 

 

 :::

 

 :::

 

 

 

 

 

 

 

Сайт создан в системе uCoz