Нарисуйте 3 окружности с заключенными в них треугольником, квадратом и звездой - Turbo Pascal

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

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

Помогите пожалуйста.
Нарисуйте 3 окружности с заключенными в них треугольником,квадратом и звездой.Все фигуры должны быть разного цвета.

Решение задачи: «Нарисуйте 3 окружности с заключенными в них треугольником, квадратом и звездой»

textual
Листинг программы
uses crt,graph;
procedure Mng(x,y,n,r,c:integer);
var i:integer;
    a,da:real;
    p:array[1..5]of Pointtype;
begin
da:=pi*2/n;
if n=4 then a:=-da/2
else a:=-da/4;
for i:=1 to n do
 begin
  p[i].x:=x+round(r*cos(a));
  p[i].y:=y-round(r*sin(a));
  a:=a+da;
  end;
p[n+1].x:=p[1].x;
p[n+1].y:=p[1].y;
SetColor(c);
drawpoly(n+1,p);
circle(x,y,r);
end;
procedure Zvezda(x,y,r,c:integer);
var i:integer;
    p:array[1..11] of Pointtype;
    a,da:real;
begin
da:=2*pi/10;
a:=-da/2;
for i:=1 to 10 do
 begin
  if i mod 2=0 then
   begin
    p[i].x:=x+round(r*cos(a));
    p[i].y:=y-round(r*sin(a));
   end
  else
   begin
    p[i].x:=x+round(r*cos(a)/2);
    p[i].y:=y-round(r*sin(a)/2);
   end;
  a:=a+da;
 end;
p[11].x:=p[1].x;
p[11].y:=p[1].y;
moveto(p[1].x,p[1].y);
setcolor(c);
for i:=1 to 11 do
lineto(p[i].x,p[i].y);
circle(x,y,r);
end;
var  x,x1,x2,x3,y1,r:integer;
begin
initgraph(x1,y1,'');
y1:=getmaxY div 2;
x1:=getmaxX div 4;
x2:=getmaxX div 2;
x3:=getmaxX-x1;
r:=60;
Mng(x1,y1,3,r,14);
Mng(x2,y1,4,r,12);
Zvezda(x3,y1,r,13);
readln
end.

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

  1. В начале кода используются две библиотеки: crt (для работы с консолью) и graph (для работы с графикой).
  2. В процедуре Mng(x,y,n,r,c:integer) используются следующие переменные: x, y, n, r, c - координаты и количество точек, радиус окружности.
  3. Для каждой точки в массиве p[1..5]of Pointtype, координаты которой вычисляются по формуле x+round(rcos(a)), y-round(rsin(a)), где a - угол, который меняется от 0 до 2π, а r - радиус окружности, происходит следующее:
    • a меняется на a+da, где da - дробная часть угла 2π, деленная на n (количество точек), чтобы получить последовательность углов.
    • Координаты точки округляются до ближайшего целого числа.
  4. В процедуре Zvezda(x,y,r,c:integer) используются следующие переменные: x, y, r, c - координаты и количество точек, радиус окружности.
    • Для каждой точки в массиве p[1..11]of Pointtype, координаты которой вычисляются по формуле x+round(rcos(a)), y-round(rsin(a)), где a - угол, который меняется от 0 до 2π, а r - радиус окружности, происходит следующее:
      • a меняется на a+da, где da - дробная часть угла 2π, деленная на 10 (количество точек), чтобы получить последовательность углов.
      • Координаты точки округляются до ближайшего целого числа.
  5. В конце кода используется функция initgraph(x1,y1,''), которая инициализирует графическую среду.
  6. Затем вычисляются координаты верхнего левого угла окна (x1, y1) и ширина и высота окна (x1, y1).
  7. Вызывается функция Mng(x1,y1,3,r,14), которая рисует три окружности с центрами в точках (x1, y1), (x2, y1) и (x3, y1), радиусом r и номером 14.
  8. Затем вызывается функция Zvezda(x3, y1, r, 13), которая рисует звезду с центром в точке (x3, y1), радиусом r и номером 13.
  9. В конце программы вызывается readln(), чтобы приостановить выполнение программы и дать пользователю возможность ввести данные.

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


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

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

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