PROGRAM PRG11_14;
USES GRAPH, CRT; 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 - режим работы графического адаптера.
|