Нарисовать паркет, используя процедуры - Pascal ABC

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

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

Нарисовать паркет с помощью процедуры

Решение задачи: «Нарисовать паркет, используя процедуры»

textual
Листинг программы
uses GraphABC;
procedure plitk(x,y,r:integer);
var u:real;
    i:byte;
    x1,y1:integer;
begin
circle(x,y,3);
u:=0;
for i:=1 to 4 do
 begin
  x1:=x+round(3*cos(u));
  y1:=y-round(3*sin(u));
  line(x1,y1,x1+round(r*cos(u-pi/8)),y1-round(r*sin(u-pi/8)));
  line(x1,y1,x1+round(r*cos(u-pi/8)),y1-round(r*sin(u-pi/8)));
  line(x1,y1,x1+round(r*cos(u+pi/8)),y1-round(r*sin(u+pi/8)));
  line(x1,y1,x1+round(r*cos(u+pi/8)),y1-round(r*sin(u+pi/8)));
  u:=u+pi/2;
 end;
end;
 
var r,x,y:integer;
begin
r:=20;
y:=r;
while y<=windowheight do
 begin
  x:=r;
  while x<=windowwidth do
   begin
    plitk(x,y,r);
    x:=x+2*r;
   end;
  y:=y+2*r
 end;
end.

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

  1. В начале кода подключается библиотека GraphABC.
  2. Создается процедура plitk, которая принимает три параметра: x, y и r. Эта процедура рисует треугольник с радиусом 3, центром в точке (x, y) и стороной длиной r.
  3. Создается переменная u типа real, которая будет использоваться для генерации значений углов в диапазоне от 0 до 2π.
  4. Создается переменная i типа byte, которая будет использоваться для генерации значений углов в диапазоне от 1 до 4.
  5. Создаются две переменные x1 и y1 типа integer, которые будут использоваться для хранения координат вершин треугольника.
  6. Вызывается процедура circle с аргументами (x, y, 3), чтобы нарисовать окружность с радиусом 3 и центром в точке (x, y).
  7. Инициализируется переменная u значением 0.
  8. Запускается цикл for, который выполняется 4 раза. На каждой итерации цикла значение переменной i изменяется от 1 до 4.
  9. Внутри цикла переменная u инициализируется значением 0.
  10. На каждой итерации цикла вычисляются координаты вершин треугольника: x1 := x + round(3 cos(u)), y1 := y - round(3 sin(u)).
  11. Вызываются процедуры line с аргументами (x1, y1, x1 + round(r cos(u - pi/8)), y1 - round(r sin(u - pi/8))), (x1, y1, x1 + round(r cos(u - pi/8)), y1 - round(r sin(u - pi/8))), (x1, y1, x1 + round(r cos(u + pi/8)), y1 - round(r sin(u + pi/8))), (x1, y1, x1 + round(r cos(u + pi/8)), y1 - round(r sin(u + pi/8))). Этими процедурами рисуются линии, соединяющие вершины треугольника.
  12. Значение переменной u увеличивается на π/8 на каждой итерации цикла.
  13. После завершения цикла переменная u устанавливается равной 2π.
  14. Создается переменная r типа integer, которая будет использоваться для хранения ширины окна.
  15. Создается переменная y типа integer, которая будет использоваться для хранения высоты окна.
  16. Запускается цикл while, который выполняется до тех пор, пока y не станет больше высоты окна.
  17. Внутри цикла переменная r и переменная y увеличиваются на 2r на каждой итерации цикла.
  18. После завершения цикла переменная y устанавливается равной 2 * r.
  19. Координаты вершин треугольника (x1, y1) перемещаются вправо на 2r.
  20. Цикл while повторяется с новыми значениями переменной r и переменной y.

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


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

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

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