Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal.doc
Скачиваний:
32
Добавлен:
12.03.2016
Размер:
3.29 Mб
Скачать
      1. Вывод текста в графическом режиме

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

SetTextStyle (4,0,8);

OutTextXY(200,300,’Hello!’)

на экране появится строка Hello!, выполненная шрифтом 4 (готический) размера 8. Левый верхний угол строки будет находиться в точке (200,300). Число 0 означает обычное горизонтальное направление текста, 1 – вертикальное, 2 - горизонтальное с лежащими буквами. Цвет текста, как и цвет фигур, определяется процедурой SetColor.

Всего в Паскале есть 5 стандартных шрифтов:

0 - обычный растровый (остальные - векторные)

1 - полужирный

2 - тонкий

3 - газетный

4 – готический

Размер букв зависит от шрифта. Можно независимо менять высоту и ширину букв. Для этого существует процедура SetUserCharSize. Например,SetUserCharSize(7,3, 9,4)устанавливает ширину букв в 7/3 раза больше нормальной, а высоту - в 9/4.

К сожалению, стандартный набор векторных шрифтов Паскаля не поддерживает русские буквы. Если вы хотите красиво писать по-русски, вам придется где-нибудь найти подходящие файлы русских шрифтов.

Недостаток OutTextXY- она выводит только строковые выражения. Покажу, как обмануть ее и напечатать значение числового выражения. Пусть переменнаяa описана, как Integer, и равна 937. ОператорOutTextXY(200,200, a)не захочет ее печатать. Тогда придумаем переменнуюasи опишем ее, как String. Следующий фрагмент делает дело:

a:=937;

Str(a,as);

OutTextXY(200,200, as)

Процедура Str преобразует числоa=937 в строку из трех символовas=’937’.

Для симметрии покажу и обратную процедуру Val:

VARa,err :Integer;

as :String;

begin

as:='937';

Val(as,a,err);

WriteLn (a+1);

ReadLn

end.

Пояснения: ПроцедураVal преобразует строку из трех символов 937 в число 937. В результате операторWriteLn (a+1) печатает число 938. На смысле переменнойerrостанавливаться я не буду.

Задание 132:У вас имеется текстовый файл из произвольного числа строк. Организуйте вывод этого файла на экран векторным шрифтом. Если у вас есть время, организуйте управление с клавиатуры: пролистывание текста, выбор шрифта, выбор цвета шрифта и фона.

      1. Управление цветом в текстовом режиме (модульCrt)

Если вам не нужно рисовать на экране картинки, то вам не нужен и графический режим. Тем более, что вывод текста в текстовом режиме можно сделать достаточно красиво и удобно. Делается это с помощью модуля CRT. Вот какие процедуры он предлагает для этого:

TextColor (Yellow)

Выбор цвета текста

TextBackground (Blue)

Выбор цвета фона под текстом. Я имею в виду цвет не всего экрана, а той узенькой полоски, на которой появляется текущий текст

ClrScr

Очистка экрана. Если в программе предварительно была выполнен оператор TextBackground (Blue), то после выполненияClrScrвесь экран станет синим

GotoXY(61,14)

Поместить курсор в 61 столбец 14 строки

До сих пор вы не умели управлять положением текстового курсора на экране. При помощи процедуры GotoXY вы сможете помещать курсор в произвольную точку экрана, а значит и текст печатать в произвольном месте экрана. Вспомним, что в текстовом режиме экран обычно разделен на 25 строк по 80 столбцов. Строки пронумерованы сверху вниз, столбцы - слева направо. Чтобы поместить курсор в 61 столбец 14 строки, достаточно записатьGotoXY(61,14).

Задача:Закрасить экран красным цветом и посредине экрана желтыми буквами на синем фоне написать “Вход”.

Программа:

USESCRT;

BEGIN

TextBackground (Red);

ClrScr;

TextColor (Yellow);

TextBackground (Blue);

GotoXY(38,13);

WriteLn(‘Вход’)

END.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]