Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы программирования на языке Pascal.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.91 Mб
Скачать

1.9. Вывод текста.

Описываемые ниже стандартные процедуры и функции поддерживают вывод текстовых сообщений в графическом режиме

Процедура

Procedure OutText (Text : String)

выводит текстовую строку Text, начиная с текущего положения указателя, в соответствии с установленным стилем и выравниванием (см. далее).

Аналогичная процедура

Procedure OutTextXY (X,Y:Integer; Text:String)

выводит строку, начиная с заданного места. При этом указатель не меняет своего положения.

Процедура

Procedure SetTextStyle (Font, Direct, Size:Word)

устанавливает стиль текстового вывода на графический экран. Здесь Font – номер шрифта (от 1 до 10); Direct- код направления ( HorizDir=0 – слева – направо; VortDir=1-снизу – вверх); Size – размер шрифта (от 1 до 10).

Процедура

Procedure SetTextJustify (Horiz, Vert: Word)

задает выравнивание выводимого текста по отношению к текущему положению указателя или к заданным координатам. Здесь Horiz – горизонтальное выравнивание;

Vert – вертикальное выравнивание. В качестве фактических параметров можно использовать следующие константы:

Const

LeftText = 0; {Указатель слева от текста}

CenterText = 1; {Симметрично слева и справа, сверху и снизу}

RightText = 2; {Указатель справа от текста}

BottomText; {Указатель снизу от текста}

TopText = 2; {Указатель сверху от текста}.

В некоторых случаях могут пригодиться функции:

Function TextWidth(Txt:String):Word;

Function TextHeight(Txt:String):Word;

которые возвращают соответственно длину и высоту текста в пикселах выводимой текстовой строки с учетом текущего стиля вывода, заданного процедурой SetTextStyle.

Ниже приводится программа, выводящая на графический экран дачный домик (рисунок 5.3).

PROGRAM EXAMPLE;

USES GRAPH;

VAR ERROR,GD,GM:INTEGER;

PROCEDURE PICTURE;

BEGIN

SETCOLOR(WHITE);

{ЗДАНИЕ ДОМА}

RECTANGLE(100,200,500,450);

LINE(300,20,100,200);

LINE(300,20,500,200);

{КРУГЛОЕ ОКНО НА КРЫШЕ}

CIRCLE(300,120,30);

{ОКНО}

RECTANGLE(150,250,250,380); {ПРЯМОУГОЛЬНИК ОКНА}

LINE(150,290,250,290); {ГОРИЗОНТАЛЬНАЯ ЛИНИЯ}

LINE(200,290,200,380); {ВЕРТИКАЛЬНАЯ ЛИНИЯ}

ELLIPSE(200,250,0,180,50,20); {ВЕРХНЯЯ ЧАСТЬ ОКНА}

{ВХОДНАЯ ДВЕРЬ}

SETLINESTYLE(SOLIDLN,0,THICKWIDTH);

RECTANGLE(350,220,450,430);

LINE(370,315,370,340);

{ЗАКРАШИВАЕТСЯ КРЫША СИМВОЛАМИ '+' СИНИМ ЦВЕТОМ}

SETFILLSTYLE(HATCHFILL,BLUE);

FLOODFILL(300,21,WHITE);

{ЗАКРАШИВАЕТСЯ ФАСАД ЗДАНИЯ РЕДКИМИ ТОЧКАМИ ЖЕЛТОГО ЦВЕТА}

SETFILLSTYLE(WIDEDOTFILL,YELLOW);

FLOODFILL(101,201,WHITE);

{ЗАКРАШИВАЕТСЯ ВХОДНАЯ ДВЕРЬ СПЛОШНЫМ ЗЕЛЕНЫМ ЦВЕТОМ}

SETFILLSTYLE(SOLIDFILL,GREEN);

FLOODFILL(355,225,WHITE);

END;

BEGIN

GD:=DETECT;

INITGRAPH(GD,GM,'C:\BP\BGI\');

ERROR:=GRAPHRESULT;

IF NOT(ERROR=GROK) THEN

BEGIN

WRITELN(GRAPHERRORMSG(ERROR));

READLN;

E ND;

ELSE

BEGIN

PICTURE;

READLN;

CLOSEGRAPH;

END;

END.

Рисунок 5.3 – Результат работы программы Example

2. Задание

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

3. Содержание отчета.

Отчёт должен содержать:

1) задание к работе;

2) блок-схему решения программы;

3) листинг программы;

4) результаты расчётов.

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

  1. Установление графического режима.

  2. Контроль ошибок графических операций.

  3. Координаты точек на экране.

  4. Управление цветом.

  5. Вывод на графический экран линий и точек.

  6. Вывод многоугольников, дуг, окружностей, эллипсов.

  7. Заполнение фрагментов графического экрана.

РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА

  1. Новичков В.С. ПАСКАЛЬ – В.С. Новичков, Н.И. Парфилов, А.Н. Пылькин - М.: Высш. школа, 1990г. 223 стр.

  2. Савельев А.Я. ЯЗЫКИ ПРОГРАММИРОВАНИЯ (Паскаль, ПЛ/М). – М.:Высш. школа. 1987г. –143 стр.

  3. Боон К. ПАСКАЛЬ ДЛЯ ВСЕХ. – М.- Энергоатомиздат, 1988г.- 190 стр.