Изобразить на экране круг, движущийся по окружности с угловой скоростью, управляймой клавишами ">" и "<". - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

1.Изобразить на экране круг, движущийся по окружности с угловой скоростью, управляймой клавишами ">" и "<". 2.Изобразить на экране прямоугольник, по периметру которого движется окружность.

Решение задачи: «Изобразить на экране круг, движущийся по окружности с угловой скоростью, управляймой клавишами ">" и "<".»

textual
Листинг программы
uses crt,graph;
var xc,yc,w,h,r,x,y,dx,dy:integer;
begin
x:=0;
initgraph(x,y,'');
w:=200;
h:=100;
r:=10;
xc:=(getmaxX-w) div 2;
yc:=(getmaxY-h) div 2;
setcolor(12);
rectangle(xc,yc,xc+w,yc+h);
x:=xc;
y:=yc-r-1;
dx:=1;
dy:=0;
repeat
setcolor(14);
Circle(x,y,r);
delay(10);
setcolor(0);
Circle(x,y,r);
x:=x+dx;
y:=y+dy;
if(x=xc-r-1)and(y=yc-r-1) then{левый верхний угол}
 begin
  dx:=1;
  dy:=0;
 end
else if(x=xc+w+r+1)and(y=yc-r-1)then{правый верхний}
 begin
  dx:=0;
  dy:=1;
 end
else if(x=xc+w+r+1)and(y=yc+h+r+1)then{првый нижний}
 begin
  dx:=-1;
  dy:=0;
 end
else if(x=xc-r-1)and(y=yc+h+r+1)then{левый нижний}
 begin
  dx:=0;
  dy:=-1;
 end;
until keypressed;
end.

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

  1. Используется библиотека crt для работы с графическим интерфейсом и графическим движком.
  2. Переменные xc, yc, w, h, r, x, y, dx, dy определены и инициализированы значениями.
  3. Переменные x и y устанавливаются в начальные координаты центра круга.
  4. Переменная r определяет радиус круга.
  5. Переменные dx и dy определяют угловую скорость движения круга по оси x и y соответственно.
  6. Цикл repeat используется для непрерывного движения круга по экрану.
  7. Внутри цикла выполняются следующие действия:
    • Устанавливается цвет кисти в черный (цвет 12).
    • Рисуется прямоугольник с центрами в точках (xc, yc) и (xc+w, yc+h).
    • Устанавливается цвет кисти в белый (цвет 14).
    • Рисуется круг с центром в точке (x, y) и радиусом r.
    • Вызывается функция delay(10), чтобы замедлить движение круга.
    • Устанавливается цвет кисти в черный (цвет 0).
    • Рисуется круг с центром в точке (x, y) и радиусом r.
    • Переменные x и y обновляются на новые значения, полученные от функции getmaxX и getmaxY.
    • Если условие x=xc-r-1 и y=yc-r-1 выполняется, то dx и dy сбрасываются в начальные значения.
    • Если условие x=xc+w+r+1 и y=yc-r-1 выполняется, то dx и dy сбрасываются в начальные значения.
    • Если условие x=xc+w+r+1 и y=yc+h+r+1 выполняется, то dx и dy сбрасываются в начальные значения.
    • Если условие x=xc-r-1 и y=yc+h+r+1 выполняется, то dx и dy сбрасываются в начальные значения.
  8. Цикл while продолжается до тех пор, пока не будет нажата клавиша.

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


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

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

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