Александр Цветков - Язык программирования PASCAL
- 8 -
Тема №2 Использование модуля CRT
Язык Паскаль имеет специальную библиотеку работы с экраном в текстовом режиме. Она называется CRT[5]. Эта библиотека содержит набор подпрограмм, позволяющих задавать цвет выводимых букв, цвет фона, устанавливать курсор в желаемую позицию. В текстовом режиме считается, что окно содержит 25 строк по 80 колонок. В каждой позиции может быть один символ (буква, цифра, специальные знаки). Графические объекты (прямые, окружности и т.п.) в текстовом окне не допустимы. Модуль CRT эмулирует текстовый терминал первых персональных компьютеров.
Подключение библиотеки к программе осуществляется предложением Uses:
Program Card;
Uses CRT; { Это предложение вставляется сразу после Program }
Далее могут идти описания переменных, затем begin и тело программы.
Рассмотрим использование подпрограмм этой библиотеки на примере создания заставки программы.
Program Card;
Uses CRT; { Подключить модуль CRT }
begin
ClrScr; { Очистить экран }
TextColor (White); { Установить белый цвет букв }
TextBackGround (Blue); { Установить синий цвет фона }
GotoXY (36,13); { Поставить курсор в 36 колонку, 13 строку }
write (' Привет '); { Вывести текст }
ReadKey; { Ожидать нажатия любой клавиши }
end.
Наберите текст этой программы и выполните её.
Разберем действия отдельных процедур:
* ClrScr – очищает экран или текущее окно (от англ. Clear Screen), закрашивая его текущим цветом фона, установленным процедурой TextBackGround. По умолчанию – цвет экрана белый.
* TextColor (цвет) – устанавливает текущий цвет букв, который будет использоваться операторами write и writeln. По умолчанию используется светло-серый цвет букв.
* TextBackgroud (цвет) – устанавливает текущий цвет фона, который будет использоваться операторами write и writeln.
* GotoXY (колонка, строка) – переводит курсор в указанную позицию; вывод, осуществляемый последующим оператором write или writeln будет начинаться с этой позиции. Обычно экран в текстовом режиме содержит 80 колонок и 25 строк.
* ReadKey – ожидание нажатия на любую клавишу (далее мы рассмотрим другое применение этой подпрограммы).
- 9 -
В качестве цвета может использоваться число от 0 до 15, но лучше пользоваться определенными в модуле CRT константами:
Таблица цветов
Black
Черный
DarkGray
Темно-серый
Blue
Синий
LightBlue
Светло-синий
Green
Зеленый
LightGreen
Светло-зеленый
Cyan
Небесно голубой
LightCyan
Ярко-голубой
Red
Красный
LightRed
Светло-красный
Magenta
Малиновый
LightMagenta
Светло-малиновый
Brown
Коричневый
Yellow
Желтый
LightGray
Светло-серый
White
Белый
Рассмотрим еще несколько полезных подпрограмм.
* Window (x1,y1,x2,y2) – создание окна вывода. В случае задания окна, все операторы write и writeln выводят только в него, процедура ClrScr будет очищать только это окно.
* WhereX, WhereY – две функции, позволяющие узнать координаты местонахождения курсора. Пример использования : GotoXY(WhereX+10,WhereY+2).
Задание №2:Напишите программу «Визитная карточка», которая выводила бы на экран хорошо оформленные ваши личные данные: имя, фамилию, год рождения, адрес, телефон.
Используйте разные цвета, хорошо скомпонуйте.
Задание №2*:Модуль Sounds содержит процедуры и функции для работы со звуком:
n:=LoadSound(fname) – загружает звук из файла с именем fname в оперативную память и возвращает описатель звука в целую переменную n (звуковой файл должен может иметь любой формат);
PlaySound(n) – начинает проигрывание звука с описателем n;
StopSound(n) – останавливает проигрывание звука с описателем n;
RewindSound(n) – "перематывает" звук с описателем n на начало ;
DestroySound(n) – удаляет звук с описателем n из оперативной памяти, описатель звука при этом становится недействительным ;
SoundLength(n) – возвращает длительность звука с описателем n в миллисекундах.
Используйте его возможности для «улучшения» программы «Визитная карточка»
Пример использования модуля sound:
Program Player;
Uses Sounds, CRT;
var n: integer;
begin
n:=LoadSound ('C:WINDOWSMEDIAringin.wav '); // укажите расположение файла
PlaySound (n);
Sleep(SoundLength (n));
DestroySound (n);
end.
- 10 -
Тема №3 Графический модуль GraphABC
Система ABC Pascal обладает великолепной графической библиотекой. Для ее модключения после заголовка программы необходимо написать Uses GraphABC. Модуль GraphABC содержит константы, типы, процедуры и функции для рисования в графическом окне. Они подразделяются на несколько групп:
* Графические примитивы
* Действия с кистью
* Действия с цветом
* Действия со шрифтом
* Действия с точками и прямоугольниками
* Действия с рисунками
* Действия с пером
* Действия с графическим окном
Рассмотрим сразу пример:
Program Gr01;
Uses GraphABC;
begin
SetWindowSize(256,256);
SetPenColor(RGB(0,0,255));
Line(0,0, WindowWidth, WindowHeight)
Line(0,WindowHeight, WindowWidth, 0)
end.
Процедура SetWindowSize устанавливает размер графического окна 256×256 пикселей.
Процедура SetPenColor определяет цвет рисования линий. Функция RGB возвращает цвет, заданный своими Red, Green, Blue компонентами. Процедура Line рисует линию из точки, заданной первой парой координат, в точку, заданную второй парой координат. Функции WindowWidth и WindowHeight возвращают текущие значения ширины и высоты графического окна (следовательно, если вы поменяете размер окна в процедуре SetWindowSize, то линии все равно будут проводиться из угла в угол).
Оконные координаты
* Координата x растет слева на право от 0 до значения WindowWidth
* Координата y растет сверху вниз от 0 до значения WindowHeight
- 11 -
Задание цвета
Как известно восприятие цвета у человека трехцветное. Основываясь на этом, в графических библиотеках используется именно такое трехкомпонентное представление цвета. Цвет задается с помощью функции rgb(Red, Green,Blue)
Здесь
* Red – число от 0 до 255, соответствующее интенсивности красной компоненты
* Green – число от 0 до 255, соответствующее интенсивности зеленой компоненты
* Blue – число от 0 до 255, соответствующее интенсивности синей компоненты
Функция формирует целое число (integer), которое может использоваться везде в графической библиотеке, где требуется указание цвета. Есть несколько предопределенных цветов:
clBlack – черный
clCream – кремовый
clPurple – фиолетовый
clAqua – бирюзовый
clWhite – белый
clOlive – оливковый
clMaroon – темно-красный
clFuchsia – сиреневый
clRed – красный
clTeal – сине-зеленый
clNavy – темно-синий
clGray – серый
clGreen – зеленый
clLime – ярко-зеленый
clBrown – коричневый
clLightGray – светло-серый
clBlue – синий
clMoneyGreen – цвет зеленых денег
clSkyBlue – голубой
clDarkGray – темно-серый
clYellow – желтый
Задание стиля и цвета пера
* SetPenColor(цвет) – устанавливает цвет пера, задаваемый параметром color.
* SetPenWidth(ширина) – устанавливает ширину пера.
* SetPenStyle(стиль) – устанавливает стиль пера (сплошной, пунктир и т.п.), возможные значения указаны в таблице (стиль применим только к ширине пера 1 пиксел)
psSolid
psDash
psDashDot
psClear
psDot
psDashDotDot
Текущее перо используется для рисования линий, прямоугольников, ломаных, окружностей, эллипсов, дуг и т.п.
Пример:
Program Gr02;
Uses GraphABC;
Var i : integer;
begin
SetWindowSize(512,512);
SetPenStyle(psDash);
SetBrushStyle(bsClear);
Circle (256,256,WindowHeight div 2);
end.
- 12 -
Задание стиля и цвета кисти
* SetBrushColor(цвет) – устанавливает цвет кисти
* SetBrushPicture(имя файла) – устанавливает в качестве образца для закраски кистью образец, хранящийся в файле, при этом текущий цвет кисти при закраске игнорируется.