Вывод текста в графическом режиме

  • docx
  • 06.05.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

0.1. Вывод текста в графическом режиме
Иконка файла материала 104.docx

0.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:

VAR   a,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: У вас имеется текстовый файл из произвольного числа строк. Организуйте вывод этого файла на экран векторным шрифтом. Если у вас есть время, организуйте управление с клавиатуры: пролистывание текста, выбор шрифта, выбор цвета шрифта и фона.


 

Скачано с www.znanio.ru