Смекни!
smekni.com

Разработка программ в среде программирования Turbo Pascal 7.0 (стр. 4 из 5)

В некоторых случаях перед обращением к модулю следует провести его инициализацию ( установить связь с теми или иными файлами, инициализировать какой-то переменные). Эта секция начинается со слова begin , после которого идут выполняемые операторы, а затем слово end. ( c точкой).

Использование модуля в основной программе.

Чтобы использовать подпрограммы, константы, типы и переменные , описанные в интерфейсе модуля, в основной программе следует записать слово uses, после которого указать имена модулей . После этого в основной программе можно использовать идентификаторы, указанные в интерфейсах перечисленных модулей.Таким образом можно создавать собственные модули, расширяя библиотеку стандартных программ и функций.

Модуль Crt

Mодуль Crt содержит константы, переменные и подпрограммы,предназначенные для работы с консолью.

В отличие от стандартного ввода-вывода,когда он осуществляется через операционную систему, подпрограммы модуля Crt работают с BIOS , и даже непосредственно с видеопамятью.

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

Модуль Crt позволяет работать не только со

всем экраном, но и выделять в нем прямоугольные окна . Любое окно задается своим левым верхним углом и правым нижним углом. Эти углы, как и любое положение на экране, задаются двумя координатами X и Y.

Приведенные ниже процедуры и функции расширяют возможности использования текстового режима экрана, находятся в стандартном модуле CRT.TPU и будут доступны в программе после объявления USES CRT.

1)Функция без параметров KeyPressed возвращает true, если на клавиатуре была нажата любая символьная клавиша, и false в противном случае. Не задерживает выполнение программы.

2)Функция без параметров ReadKey возвращает символ нажатой клавиши без эхо повтора на экране. Приостанавливает выполнений программы до нажатия на любую клавишу.

3) Функции без параметров WhereX, WhereY возвращают горизонтальную или вертикальную координату текущей позиции курсора относительно текущего окна.

4) Процедура без параметров CIrEol удаляет все символы оттекущей позиции курсора до конца строки без перемещения курсора.

5) Процедура без параметров DelLine удаляет строку, на которой

находится курсор, и перемещает все строки ниже этой строки на

строку вверх. Нижняя строка очищается.6) Процедура без параметров ClrScr очищает экран и помещает курсор в верхний левый угол.

7) Процедура Delay приостанавливает работу программы на

указанное число миллисекунд (t). DELAY(t);

8) Процедура GotoX,Y перемещает курсор в точку с заданными

координатами X,Y текстового экрана или окна, если оно задано.

GOTOXY(X,Y);

Коды цветов

Black 0 Черный
Blue 1 Синий
Green 2 Зеленый
Cyan 3 Голубой
Red 4 Красный

Magenta 5 Фиолетовый
Brown 6 Коричневый
LightGray 7 Светло-серый
DarkGray 8 Темно-серый
LightBlue 9 Светло-синий
LightGreen 10 Светло-зеленый
LightCyan 11 Светло-голубой
LightRed 12 Розовый
LightMagenta 13 Светло-фиолетовый
Yellow 14 Желтый
White 15 Белый
Blink 128 Мерцание символов

Цвета с кодами от 0 до 7 включительно можно использовать как для символов, так и для фона. Остальные цвета и код мерцания можно использовать только для символов.

Pascal — это императивный язык программирования, разработанный Никлаусом Виртом в 1970 в качестве языка обучения структурному программированию. Название языку дано в честь выдающегося французского математика, физика, литератора и философа Блеза Паскаля. Первоначально язык компилировался в байт-код, подобно языку Java.

Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль был одним из первых таких языков. По мнению Н. Вирта, язык должен способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис интуитивно понятен даже при первом знакомстве с языком.

Переменные модуля Crt.


Имя Тип Назначение
CheckBreak Boolean Разрешение анализа Ctrl+Break
CheckEof Boolean Разрешение помещения признака конца файла
CytcrSnow Boolean Разрешение подавления “снега”
DirectVideo Boolean Разрешение прямой адресации видеопамяти
LastMode Word Текущий текстовый режим
TextAttr Byte Текущие атрибуты текста
WindMin Word Координаты левого верхнего угла
WindMax Word Координаты правого нижнего угла окна

Переменная CheckBreak управляет работой программы. Если эта переменная равна true ,то комбинация клавиш Ctrl+Break вызывает прекращение работы программы. Переменная CheckEof управляет размещением признака конца файла. Если она равна true, то комбинация клавиш Ctrl+Z помещает в файл признак конца файла. Прерменная СheckSnow ( если она равна true) разрешает подавление “снега” на экране для Видеоадаптеров CGA. Переменная DirectVideo ( если она равна true) позволяет непосредственную запись информации процедурами Write и Writeln в видеопамять. В переменной LastMode помещается значение текущего текстового режима, установленного процедурой TextMode .Переменная TextAttr содержит установленные атрибуты ( цвет фона и символов ) текста. В переменных WindMin и WindMax Находятся координаты окна.

Процедуры и функции модуля Crt.

Имя процедуры (функции) Назначение
procedure AssignCrt(var F:Text); Связывает текстовый файл с устройством CRT. F- файловая переменная типа text, связывающаяся с устройством CRT.
procedure ClrEof; Удаляет все символы от курсора (включительно) до конца строки,заполняя этот участок строки цветом фона.

procedure ClrScr; Очищает текущее окно,заполняя его цветом фона и помещает курсор в его левый ерхний угол с координатами(1,1).
procedure Delay(Ms:word); Задает задержку выполнения программы в Ms миллисекундах.
procedure DelLine; Удаляет строку , в которой находится курсор.
procedure GotoXY(X,Y:Byte); Перемещает курсор к элементу экрана с заданными координатами. X,Y-координаты элемента экрана (отсчитываются от левого верхнего угла текущего окна)
procedure HighVideo; Устанавливает высокую яркость символов (заменяет цвета 0-7 на 8-15)
procedure InsLine; Вставляет пустую строку на экране в месте расположения курсора и заполняет ее цветом фона.
procedure LowVideo; Устанавливает малую яркость символов ( заменяет цвета 8-15 на 0-7)
procedure NormVideo; Устанавливает первоначальную яркость символов,выводимых далее на экран.
procedure NoSound; Выключает источник звука.
procedure Sound(Hz:word); Запускает источник звука с частотой Hz герц.
procedure TextBackGround(color:byte); Задает цвет фона. Color-задаваемый цвет фона.
procedure TextColor(Color)Byte; Задает цвет символов.Color-задаваемый цвет символов.
procedure TextMode( Mode:word); Устанавливает текстовый режим,увеличивает текущее окно до целого экрана,устанавливает переменным DirectVideo и CheckSnow значение true.Помещает значение текущего режима в переменную LastMode,запускает процедуру NormVideo . Mode- требуемый текстовый режим.
procedure Window (X1,Y1,X2,Y2:Byte); Задает размеры окна на экране и помещает курсор в левый верхний угол окна с координатами (1,1) X1,Y1- координаты левого верхнего угла экрана X2,Y2- координаты правого нижнего угла экрана. Если хотя бы одна из координат недопустима, то процедура не выполняется.
Function KeyPressed:boolean; Анализирует нажатие клавиши клавиатуры ( за исключением вспомогательных клавиш- Shift,Alt,NumLock и т.п.). Результат - true ,если клавиша на клавиатуре нажата и false - в противном случае.
function Readkey:char; Считывает символ с клавиатуры и освобождает буфер клавиатуры от считанного символа.
function WhereX:Byte; Возвращает текущую координату X курсора
function WhereY:byte: Возвращает текущую координату Y курсора

Пример программы, выполняющей вывод на экран дисплея меню следующего вида:

Выберите режим

Ввод и корректировка данных

Расчет свойств

Выбор состава

Графка

program menu;

uses Crt;label 1,2;

type

mas=array [1..4] of string[33];

const Stor :mas=(' Ввод и корректировка данных ', );

' Р а с ч е т с в о й с т в ',

' В ы б о р с о с т а в а ',

(' Г р а ф и к а ');


Выбор конкретного режима из этого меню осуществляется с помощью клавиш