Нарисовать дорожный знак - Pascal ABC (14778)

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

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

Доброго времени суток. Помогите, пожалуйста, нарисовать дорожный знак "Конец главной дороги" в Паскаль ABC.

Решение задачи: «Нарисовать дорожный знак»

textual
Листинг программы
uses graphABC;
var c,a,b,u,r,x1,y1,x2,y2,i:integer;
begin
setwindowsize(500,500);
centerwindow;
c:=250;//центр окна
a:=200; //половина длины диагонали ромба
b:=20; //отступ от углов
u:=55; //половина угла закруглния
r:=30; //радиус закругления
setpenwidth(4);//толщина линий
line(c-a,c-b,c-b,c-a);
line(c+b,c-a,c+a,c-b);
line(c+a,c+b,c+b,c+a);
line(c-b,c+a,c-a,c+b);
arc(c,c-a+b+2,r,90-u,90+u);
arc(c+a-b-2,c,r,360-u,u);
arc(c,c+a-b-2,r,270-u,270+u);
arc(c-a+b+2,c,r,180-u,180+u);
a:=150;
b:=10;
u:=40;
r:=15;
setpenwidth(2);
line(c-a,c-b,c-b,c-a);
line(c+b,c-a,c+a,c-b);
line(c+a,c+b,c+b,c+a);
line(c-b,c+a,c-a,c+b);
arc(c,c-a+b+1,r,90-u,90+u);
arc(c+a-b-1,c,r,360-u,u);
arc(c,c+a-b-1,r,270-u,270+u);
arc(c-a+b+1,c,r,180-u,180+u);
floodfill(c,c,clYellow);
a:=(a+b) div 2;
x1:=c-a-b;y1:=c+a-b;
x2:=c+a-b;y2:=c-a-b;
for i:=1 to 5 do
 begin
   line(x1,y1,x2,y2);
   x1:=x1+5;y1:=y1+5;
   x2:=x2+5;y2:=y2+5;
 end;
end.

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

  1. Создание окна с помощью функции setwindowsize и centerwindow.
  2. Установка толщины линии с помощью функции setpenwidth.
  3. Нарисованы четыре линии, образующие ромб.
  4. Нарисованы четыре арки, образующие закругление.
  5. Установка цвета заливки с помощью функции floodfill.
  6. Вычисление центра ромба с помощью формулы a=(a+b)/2.
  7. Определение координат точек x1, y1, x2, y2.
  8. Цикл для рисования пяти прямоугольников с заданными координататами.
  9. Перемещение точек x1, y1, x2, y2 на пять единиц вперед.
  10. Завершение программы.

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


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

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

9   голосов , оценка 3.889 из 5