Построить треугольники в графическом режиме - Free Pascal

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

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

Построить на экране 10 равносторонних треугольников, каждый следующий из которых имеет сторону в 1.2 раза больше предыдущего, а центры лежат на одной горизонтальной прямой на расстоянии в 20 пикселей друг от друга. Использовать цикл. Как реализовать? Спасибо

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

textual
Листинг программы
uses graph,wincrt;
procedure trg(x,y,r:integer);
var i:byte;
    u:real;
begin
u:=pi/2;
moveto(x+round(r*cos(u)),y-round(r*sin(u)));
for i:=1 to 3 do
 begin
  u:=u+2*pi/3;
  lineto(x+round(r*cos(u)),y-round(r*sin(u)));
 end;
end;
var x,y,r,i:integer;
begin
initgraph(x,y,'');
r:=50;
x:=getmaxX div 3;
y:=getmaxY div 2;
for i:=1 to 10 do
 begin
  trg(x,y,r);
  x:=x+20;
  r:=round(r*1.2);
 end;
readkey
end.

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

  1. uses graph,wincrt; - подключаем модули для работы с графикой
  2. procedure trg(x,y,r:integer); - объявляем процедуру для построения треугольника
  3. var i:byte; - объявляем переменную для цикла
  4. var u:real; - объявляем переменную для хранения угла
  5. begin - начало процедуры
  6. u:=pi/2; - инициализируем угол
  7. moveto(x+round(rcos(u)),y-round(rsin(u))); - перемещаем точку начала треугольника
  8. for i:=1 to 3 do - начинаем цикл для построения трех вершин треугольника
  9. begin - начало цикла
  10. *u:=u+2pi/3;** - увеличиваем угол на 2π/3
  11. lineto(x+round(rcos(u)),y-round(rsin(u))); - рисуем сторону треугольника
  12. end; - конец цикла
  13. end; - конец процедуры
  14. var x,y,r,i:integer; - объявляем переменные для основной программы
  15. begin - начало основной программы
  16. initgraph(x,y,''); - инициализируем графический режим
  17. r:=50; - задаем радиус треугольника
  18. x:=getmaxX div 3; - задаем координату x для первой вершины треугольника
  19. y:=getmaxY div 2; - задаем координату y для первой вершины треугольника
  20. for i:=1 to 10 do - начинаем цикл для построения 10 треугольников
  21. begin - начало цикла
  22. trg(x,y,r); - вызываем процедуру для построения треугольника
  23. x:=x+20; - перемещаем точку начала для следующей строки
  24. *r:=round(r1.2);** - увеличиваем радиус на 1.2
  25. end; - конец цикла
  26. readkey - ожидаем нажатия клавиши для завершения программы
  27. end. - конец программы

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


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

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

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