Среда разработки: Turbo Pascal 7.1
uses graph,crt; const step=5; var Gd,Gm,x,y,k:Integer; ch:char; form:real; {------------------------------------------------} procedure square(x1,y1,x2,y2,x3,y3,x4,y4:integer); begin if (abs(x2-x1)<=1) and (abs(y2-y1)<=1) then exit; Line(x1,y1,x2,y2); Line(x2,y2,x3,y3); Line(x3,y3,x4,y4); Line(x4,y4,x1,y1); square(round((x1+x2)/2),round((y1+y2)/2), round((x2+x3)/2),round((y2+y3)/2), round((x3+x4)/2),round((y3+y4)/2), round((x4+x1)/2),round((y4+y1)/2)) end; {------------------------------------------------} begin x:=100; y:=100; k:=200; Gd:=Detect; InitGraph(Gd,Gm,''); If GraphResult <> grOk Then Halt(1); square(x,y,x+k,y,x+k,y+k,x,y+k); repeat ch:=readkey; setcolor(black); square(x,y,x+k,y,x+k,y+k,x,y+k); case ch of #80: inc(y,step); #72: dec(y,step); #77: inc(x,step); #75: dec(x,step); '+': inc(k,step); '-': dec(k,step); end; setcolor(white); square(x,y,x+k,y,x+k,y+k,x,y+k); until ch=#27; CloseGraph; end.