Система меню, вывод окружности на экран - 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.

Объяснение кода листинга программы

  1. В программе используется функция circle для создания окружности на экране. Функция принимает три параметра: координаты центра окружности, радиус окружности и цвет заливки.
  2. В программе также используются функции setcolor и FloodFill для изменения цвета заливки окружности и ее заполнения случайными точками или частыми точками соответственно.
  3. Создается система меню с помощью функций outtextxy для вывода текста на экран. В данном случае выводятся надписи на кнопках.
  4. Управляется движение курсора с помощью функций Rectangle и Bar для создания и перемещения прямоугольника и его баров соответственно.
  5. Переменные x, y, x1, y1 используются для хранения координат центра курсора и его текущего положения.
  6. Переменная c используется для хранения номера окружности, которую нужно создать или изменить.
  7. Переменные i и a используются для итерации по циклам и хранения информации о текущей окружности.
  8. Переменная k используется для чтения нажатой клавиши и определения действия, которое нужно выполнить.
  9. Переменные gd и gm используются для инициализации графического драйвера и указания имени графического файла.
  10. Программа завершается с помощью функции closegraph.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.25 из 5
Похожие ответы