Система меню, вывод окружности на экран - Turbo Pascal
Формулировка задачи:
Построить систему меню, которая в зависимости от выбора пользователя выводит на экран: окружность; окружность, заполненную частыми точками; окружность, заполненную редкими точками.
Решение задачи: «Система меню, вывод окружности на экран»
textual
Листинг программы
program menu; {$apptype gui} uses wincrt,graph; type Point=record{для центра курсора} x,y,x1,y1:integer; end; procedure Circle1; {окружность} begin circle(GetMaxX div 2,GetMaxY div 2,GetMaxX div 4); end; //WideDotFill = 10; { заполнить редкими точками } //CloseDotFill = 11; { заполнить частыми точками } procedure Circle2; {окружность, заполненную частыми точками} begin setcolor(Blue); circle(GetMaxX div 2,GetMaxY div 2,GetMaxX div 4); SetFillStyle(CloseDotFill,Random(GetMaxColor)); FloodFill(GetMaxX div 2,GetMaxY div 2,Blue); end; procedure Circle3; {окружность, заполненную редкими точками} begin setcolor(Blue); circle(GetMaxX div 2,GetMaxY div 2,GetMaxX div 4); SetFillStyle(WideDotFill,Random(GetMaxColor)); FloodFill(GetMaxX div 2,GetMaxY div 2,Blue); end; procedure menyu; {создание кнопок, курсора, его перемещение и условия выполнения процедур} var x,y,x1,y1:integer; i,c:byte; a:Point; {центр курсора} move:boolean; k:char; begin {sozdanie knopok} x:=160;y:=10;{верхний левый угол первой кнопки} for i:=1 to 4 do begin x:=160+80*(i-1); Setcolor(i+1); Rectangle(x,y,x+80,y+20); Setfillstyle(1,i+1); Bar(x,y,x+80,y+20); end; {nadpisi na knopkah} Setcolor(0); outtextxy(185,15,'Circle1'); outtextxy(265,15,'Cirlle2'); outtextxy(345,15,'Circle3'); outtextxy(425,15,' Exit'); {sozdanie i dvizenie kursora} a.x:=90;a.y:=15;{nachalo} move:=true; repeat if keypressed then begin k:=readkey; if k=#77 then begin a.y1:=a.y; a.x1:=a.x; a.x:=a.x+80; move:=true; end; if k=#75 then begin a.y1:=a.y; a.x1:=a.x; a.x:=a.x-80; move:=true; end; if (k=#13)and (a.x=170) then circle1; {knoka 1 + Enter} if (k=#13)and (a.x=250) then circle2; if (k=#13)and (a.x=330) then circle3; if (k=#13)and (a.x=410) then k:=#27; end; if move then begin if a.x1=170 then c:=2 else if a.x1=250 then c:=3 else if a.x1=330 then c:=4 else if a.x1=410 then c:=5 else c:=0; Setcolor(c); Circle(a.x1,a.y1,5); Setfillstyle(1,c); Fillellipse(a.x1,a.y1,5,5); Setcolor(12); Circle(a.x,a.y,5); Setfillstyle(1,12); Fillellipse(a.x,a.y,5,5); move:=false; end; until k=#27; end; var gd,gm:smallint; begin gd:=detect; initgraph(gd,gm,''); menyu; closegraph; end.
Объяснение кода листинга программы
- В программе используется функция
circle
для создания окружности на экране. Функция принимает три параметра: координаты центра окружности, радиус окружности и цвет заливки. - В программе также используются функции
setcolor
иFloodFill
для изменения цвета заливки окружности и ее заполнения случайными точками или частыми точками соответственно. - Создается система меню с помощью функций
outtextxy
для вывода текста на экран. В данном случае выводятся надписи на кнопках. - Управляется движение курсора с помощью функций
Rectangle
иBar
для создания и перемещения прямоугольника и его баров соответственно. - Переменные
x
,y
,x1
,y1
используются для хранения координат центра курсора и его текущего положения. - Переменная
c
используется для хранения номера окружности, которую нужно создать или изменить. - Переменные
i
иa
используются для итерации по циклам и хранения информации о текущей окружности. - Переменная
k
используется для чтения нажатой клавиши и определения действия, которое нужно выполнить. - Переменные
gd
иgm
используются для инициализации графического драйвера и указания имени графического файла. - Программа завершается с помощью функции
closegraph
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д