GAECHKA
Твоя помощница в решении задач

Составить программу изображения на экране правильного заполненного многоугольника

Составить программу изображения на экране правильного заполненного многоугольника. Цвет, стиль заполнения и количество углов многоугольника вводится с клавиатуры в турбо паскале. Не могу написать !
0
вопрос задан

Источник


4 ответа
Решение
uses graph,crt;
type mng=record
         n,r,c,s:integer;
         end;
procedure draw(x,y:integer;m:mng);
var u:real;
    p:array[1..21] of pointtype;
    i:byte;
begin
u:=pi/2;
for i:=1 to m.n+1 do
 begin
  p[i].x:=x+round(m.r*cos(u));
  p[i].y:=y-round(m.r*sin(u));
  u:=u+2*pi/m.n;
 end;
setfillstyle(m.s,m.c);
setcolor(m.c);
fillpoly(m.n,p);
end;
var x,y:integer;
    m:mng;
begin
clrscr;
repeat
write('Введите цвет число от 1 до 15: ');
readln(m.c);
until m.c in [1..15];
repeat
write('Введите стиль заполнения число от 1 до 11: ');
readln(m.s);
until m.s in [1..11];
repeat
write('Введите количество углов число от 3 до 20: ');
readln(m.n);
until m.n in [3..20];
x:=0;
initgraph(x,y,'');
x:=getmaxX div 2;
y:=getmaxY div 2;
m.r:=y-50;
draw(x,y,m);
readln
end.
uses graph,crt;
var x,y,c,s,n,r,i:integer;
    p:array[1..21] of pointtype;
    u:real;
begin
clrscr;
repeat
write('Введите цвет число от 1 до 15 c=');
readln(c);
until c in [1..15];
repeat
write('Введите стиль заполнения число от 1 до 11 s=');
readln(s);
until s in [1..11];
repeat
write('Введите количество углов число от 3 до 20 n=');
readln(n);
until n in [3..20];
x:=0;
initgraph(x,y,'');
x:=getmaxX div 2;
y:=getmaxY div 2;
r:=y-50;
u:=pi/2;
for i:=1 to n+1 do
 begin
  p[i].x:=x+round(r*cos(u));
  p[i].y:=y-round(r*sin(u));
  u:=u+2*pi/n;
 end;
setfillstyle(s,c);
setcolor(c);
fillpoly(n,p);
readln
end.
А можете через процедуру показать
Спасибо большое