Смоделировать движение окружности по внешней границе квадрата - Turbo Pascal

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

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

Смоделировать движение окружности, по внешней границе квадрата!!! ХЭЛЛЛЛЛПППП

Решение задачи: «Смоделировать движение окружности по внешней границе квадрата»

textual
Листинг программы
  1. uses graph,crt;
  2. var x1,y1,x2,y2,x,y,r,xc,yc:integer;
  3.     u:real;
  4. begin
  5. initgraph(x1,y1,'');
  6. x1:=getmaxX div 2-100;
  7. x2:=getmaxX div 2+100;
  8. y1:=getmaxY div 2-100;
  9. y2:=getmaxY div 2+100;
  10. setcolor(14);
  11. setlinestyle(0,0,3);
  12. rectangle(x1+3,y1+3,x2-3,y2-3);
  13. outtextXY(getmaxX div 2-50,20,'Exit any key');
  14. x:=x1;
  15. r:=10;
  16. y:=y1-r;
  17. repeat
  18. while (x<x2)and not keypressed do
  19.  begin
  20.   setcolor(12);
  21.   circle(x,y,r);
  22.   delay(50);
  23.   setcolor(0);
  24.   circle(x,y,r);
  25.   x:=x+2;
  26.  end;
  27. xc:=x2;
  28. yc:=y+r;
  29. u:=pi/2;
  30. while(u>0)and not keypressed do
  31.  begin
  32.   setcolor(12);
  33.   circle(x,y,r);
  34.   delay(50);
  35.   setcolor(0);
  36.   circle(x,y,r);
  37.   x:=xc+round(r*cos(u));
  38.   y:=yc-round(r*sin(u));
  39.   u:=u-0.3;
  40.  end;
  41. while (y<y2)and not keypressed do
  42.  begin
  43.   setcolor(12);
  44.   circle(x,y,r);
  45.   delay(50);
  46.   setcolor(0);
  47.   circle(x,y,r);
  48.   y:=y+2;
  49.  end;
  50. xc:=x-r;
  51. yc:=y2;
  52. u:=0;
  53. while(u>-pi/2)and not keypressed do
  54.  begin
  55.   setcolor(12);
  56.   circle(x,y,r);
  57.   delay(30);
  58.   setcolor(0);
  59.   circle(x,y,r);
  60.   x:=xc+round(r*cos(u));
  61.   y:=yc-round(r*sin(u));
  62.   u:=u-0.3;
  63.  end;
  64. while (x>x1)and not keypressed do
  65.  begin
  66.   setcolor(12);
  67.   circle(x,y,r);
  68.   delay(50);
  69.   setcolor(0);
  70.   circle(x,y,r);
  71.   x:=x-2;
  72.  end;
  73. xc:=x1;
  74. yc:=y-r;
  75. u:=-pi/2;
  76. while(u>-pi)and not keypressed do
  77.  begin
  78.   setcolor(12);
  79.   circle(x,y,r);
  80.   delay(30);
  81.   setcolor(0);
  82.   circle(x,y,r);
  83.   x:=xc+round(r*cos(u));
  84.   y:=yc-round(r*sin(u));
  85.   u:=u-0.3;
  86.  end;
  87. while (y>y1)and not keypressed do
  88.  begin
  89.   setcolor(12);
  90.   circle(x,y,r);
  91.   delay(50);
  92.   setcolor(0);
  93.   circle(x,y,r);
  94.   y:=y-2;
  95.  end;
  96. xc:=x+r;
  97. yc:=y1;
  98. u:=pi;
  99. while(u>pi/2)and not keypressed do
  100.  begin
  101.   setcolor(12);
  102.   circle(x,y,r);
  103.   delay(30);
  104.   setcolor(0);
  105.   circle(x,y,r);
  106.   x:=xc+round(r*cos(u));
  107.   y:=yc-round(r*sin(u));
  108.   u:=u-0.3;
  109.  end;
  110. until keypressed;
  111. readln
  112. end.

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

Этот код моделирует движение окружности по внешней границе квадрата. Давайте разберем его по шагам:

  1. Используются библиотеки graph и crt, которые необходимы для работы с графиком и выводом текста на экран соответственно.
  2. Переменные x1, y1, x2, y2 и r инициализируются значениями, полученными от функции getmaxX, getmaxY и div соответственно. Эти значения определяют максимальные координаты по оси X и Y, а также радиус окружности.
  3. Устанавливается стиль линии с помощью функции setlinestyle. В данном случае используется стиль с тремя линиями.
  4. Выводится текст на экран с помощью функции outtextXY. Текст будет выводиться в центре экрана.
  5. Переменные x, y и r инициализируются средними значениями между x1, x2, y1 и y2. Это начальные координаты для движения окружности.
  6. Запускается цикл, который будет выполняться до тех пор, пока окружность не пересечет внешнюю границу квадрата.
  7. Внутри цикла окружность рисуется с помощью функции circle. Цвет окружности меняется с помощью функции setcolor. Сначала окружность рисуется с цветом 12 (белый), затем с цветом 0 (черный).
  8. После каждого рисунка окружности выполняется задержка с помощью функции delay. Это нужно для того, чтобы окружность не исчезала сразу, а была видна на экране.
  9. После завершения цикла окружность рисуется еще несколько раз с новыми координатами, чтобы создать эффект движения.
  10. После этого выполняются последние несколько шагов, которые аналогичны началу цикла.
  11. В конце программы с помощью функции readln происходит чтение ввода пользователя, чтобы программа завершилась после того, как пользователь нажмет клавишу.

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


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

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

7   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы