Uses Graph,Crt; Type PolyPoints = record x,y : Integer; End; UserRec = array[1..4] of PointType; Var mas : UserRec; k,j,l,o,d,r : integer; Procedure RecTreug(Koor : UserRec;color : word);FAR; Const n=4; Var i : integer; Begin SetFillStyle(10,10); { \ Прорисо} SetColor(color); { | вка пер} { | вого } DrawPoly(n,koor); { | } FloodFill(koor[1].x,koor[1].y+10,10); { / тругольника} SetColor(13); Circle(koor[2].x,koor[2].y,abs((k-l))div 20); SetFillStyle(1,13); { Рисование Левого кружка} FloodFill(koor[2].x-1,koor[2].y,13); SetColor(12); Circle(Koor[3].x,Koor[3].y,(abs(k-l))div 20); SetFillStyle(1,12); { Рисование Правого кружка} FloodFill(koor[3].x-1,koor[3].y,12); For i:=1 to 2 do Begin SetColor(10); SetFillStyle(10,10); koor[1].y:=koor[2].y; koor[2].y:=koor[2].y+mas[2].y-j; {Вычисление вершин следуюшего } koor[3].y:=koor[2].y; { треугольника} koor[4].y:=koor[1].y; DrawPoly(n,koor); { Его прорисовка и закрашивание} FloodFill(koor[1].x,koor[1].y+10,10); SetColor(13); Circle(koor[2].x,koor[2].y,abs((k-l))div 20); SetFillStyle(1,13); FloodFill(koor[2].x-1,koor[2].y,13); SetColor(12); {Кружки Однако} Circle(Koor[3].x,Koor[3].y,(abs(k-l))div 20); SetFillStyle(1,12); FloodFill(koor[3].x-1,koor[3].y,12); End; SetColor(6); Rectangle(mas[1].x-((l-k)div 8),koor[3].y+1,mas[1].x+((l-k)div 8),koor[3].y+((mas[3].y-mas[1].y)div 5)); SetFillStyle(11,6); { Прорисока нижнего коричневого} FloodFill(mas[1].x,koor[3].y+4,6); { прямоугольника } End; Procedure RectElka(x,y,xx,yy : Integer); Begin mas[1].x:=((x+xx)div 2); mas[4].x:=mas[1].x; mas[2].x:=x;mas[3].x:=xx; { Вычисления вершин тр-ка видимо} mas[1].y:=y;mas[2].y:=((yy+y)div 4);mas[3].y:=mas[2].y; mas[4].y:=mas[1].y; RecTreug(mas,10); End; Begin Readln(k,j,l,o); r:=2; d:=detect; InitGraph(d,r,''); If GraphReSult=GrOK then rectelka(k,j,l,o); Readkey; CloseGraph; End.