Ваша вторая программа - "Квадраты" |
Квадраты
Строится прямоугольник. Каждая его сторона делится в заданном отношении, задавая таким образом новую вершину. Затем на вновь полученных вершинах строится новый четырехугольник. program kvadr; uses crt,graph; const n=10; var l:word; procedure new(x1,y1,x2,y2:integer;var xl,yl:integer); { Вычисление новой координаты вершины } begin xl:=(x1+(n-1)*x2) div n; yl:=(y1+(n-1)*y2) div n; end; { Процедура построения четырехугольника } procedure postroit(x1,y1,x2,y2,x3,y3,x4,y4:integer); var l1,k1,l2,k2,l3,k3,l4,k4:integer; label qv; begin setcolor(l); line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x3,y3,x4,y4); line(x4,y4,x1,y1); if abs(x2-x1)<0.001 then goto qv; { Проверка окончания построения } new(x1,y1,x2,y2,l1,k1); new(x2,y2,x3,y3,l2,k2); new(x3,y3,x4,y4,l3,k3); new(x4,y4,x1,y1,l4,k4); delay(70); postroit(l1,k1,l2,k2,l3,k3,l4,k4); qv: end; var k,dr,md:integer; x1,x2,x3,x4,y1,y2,y3,y4:integer; begin l:=10; x1:=120;y1:=40; x2:=520;y2:=40; x3:=520;y3:=440; x4:=120;y4:=440; dr:=9;md:=2; initgraph(dr,md,''); setbkcolor(1); postroit(x1,y1,x2,y2,x3,y3,x4,y4); readln; closegraph; end. Вот и все. |