Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИГА_Учимся программировать TURBO PASCAL 7.doc
Скачиваний:
32
Добавлен:
19.08.2019
Размер:
1.62 Mб
Скачать

Var driver, mode, X, y, r : integer;

H : CHAR;

PP : ARRAY[0..4] OF POINTTYPE;

PROCEDURE F0;

BEGIN

SETCOLOR(14);

SETFILLSTYLE(6, 4);

SETTEXTSTYLE(0, 0, 2);

X := 100;

Y := 100;

R := 350;

SETFILLSTYLE(1, 5);

BAR(X, Y, X+R, Y+R);

OUTTEXTXY(X+5, Y+15, 'ОПРЕДЕЛИТЕ ТИП');

OUTTEXTXY(X+5, Y+45, 'ГЕОМЕТРИЧЕСКОЙ ФИГУРЫ');

OUTTEXTXY(X+5, Y+85, '1 КРУГ);

OUTTEXTXY(X+5, Y+115, '2 КВАДРАТ');

OUTTEXTXY(X+5, Y+145, '3 ТРЕУГОЛЬНИК');

OUTTEXTXY(X+5, Y+175, '4 ВЫХОД');

SETFILLSTYLE(1, 11);

BAR(X+155, Y+220, X+173, Y+235);

REPEAT

UNTIL KEYPRESSED;

END;

PROCEDURE F1;

BEGIN

CLEARDEVICE;

SETCOLOR(11);

SETFILLSTYLE(4, 11);

FILLELLIPSE(300, 200, 200, 200);

REPEAT

UNTIL KEYPRESSED;

END;

PROCEDURE F2;

BEGIN

CLEARDEVICE;

SETCOLOR(14);

SETFILLSTYLE(5, 14);

BAR(150, 150, 400, 400);

REPEAT

UNTIL KEYPRESSED;

END;

PROCEDURE F3;

BEGIN

CLEARDEVICE;

SETCOLOR(10);

SETFILLSTYLE(8, 10);

PP[1].X := 200;

PP[1].Y:=400;

PP[2].X:= PP[1].X+250;

PP[2].Y:= PP[1].Y-100;

PP[3].X:=PP[2].X+200;

PP[3].Y:= 3*PP[2].Y;

PP[4].X:= 100;

PP[4].Y:= 100;

FILLPOLY(3, PP);

REPEAT

UNTIL KEYPRESSED;

END;

PROCEDURE F4;

BEGIN

CLEARDEVICE;

SETCOLOR(3);

SETTEXTSTYLE(0, 0, 3);

OUTTEXTXY(X+5, Y+115, 'ВАШ ВЫБОР НЕВЕРЕН');

REPEAT

UNTIL KEYPRESSED;

END;

BEGIN

DRIVER := DETECT;

INITGRAPH(DRIVER, MODE, 'C : \BP\BGI');

F0;

REPEAT

H := READKEY;

SETCOLOR(O);

OUTTEXTXY(X+158, Y+220, H);

DELAY(1000);

CASE H OF

'1' : F1;

'2' : F2;

'3' : F3;

'4' : BREAK;

ELSE F4

END;

CLEARDEVICE;

F0;

H := READKEY;

UNTIL H = '4';

CLOSEGRAPH;

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- инициируем модуль GRAPH;

- вызываем процедуру F0, которая выводит на экран основное меню для выбора фигуры;

- организуем цикл по считыванию вводимых пользователем символов до тех пор, пока не будет выбран конец работы ("4");

- в зависимости от символов, вводимых пользователем, вызы­ваем одну из четырех процедур Fl, F2, F3 или F4;

- закрываем графический режим.

Переменные:

в процедуре F0:

X, Y - координаты меню (глобальные переменные);

R - размеры меню (глобальная переменная);

в процедуре F1 - отсутствуют;

в процедуре F2 - отсутствуют;

в процедуре F3;

РР - массив записей стандартных записей для задания вершин многоугольника (глобальные переменные);

в процедуре F4:

X, Y - координаты начала текста(глобальные переменные);

в основной программе:

X, Y - координаты меню (глобальные переменные);

R - размеры меню (глобальная переменная);

РР - массив записей стандартных записей для задания вершин многоугольника (глобальные переменные);

Н - вспомогательная переменная;

DRIVER - тип графического драйвера;

MODE - режим работы графического адаптера.

Практические задания

1. Построить семейство 2. Построить семейство 3. Построить семейство

4. Построить графическое решение задачи о квадратах (задача 9.8).

5. Построить графическое решение задачи о бильярде (задача 9.8).