Uses GraphABC;var f:boolean;//переменная для выхода из программы procedure KeyDown(Key: integer);beginif Key=VK_Return then f:=false;//если нажата Enter-меняем значение флагаWindow.Caption:='Программа завершена';end;var x,y:integer; r:real;beginf:=true;//программа включена на работуsetwindowsize(600,600);//квадратное окноWindow.Caption:='Для окончания нажмите Enter';lockDrawing;r:=1;x:=windowwidth-round(50*r);y:=round(50*r);repeatwhile (y begin r:=r+0.002; Window.Clear; sleep(1); DrawCircle(x,y,round(50*r)); MoveTo(round(x+50*r),y); Arc(x,y,round(10*r),220,320); Arc(x,y,round(30*r),220,320); DrawCircle(x-round(20*r),y-round(14*r),round(10*r)); DrawCircle(x+round(20*r),y-round(14*r),round(10*r)); y:=y+1; x:=x-1; Redraw; OnKeyDown := KeyDown;//если нажмем Enter, сменится флаг на false end; // и программа завершится x:=windowwidth-round(50*r);y:=windowheight-round(50*r);while (y>=round(50*r)) and f do begin Window.Clear; sleep(1); r:=r-0.002; DrawCircle(x,y,round(50*r)); MoveTo(round(x+50*r),y); Arc(x,y,round(10*r),220,320); Arc(x,y,round(30*r),220,320); DrawCircle(x-round(20*r),y-round(14*r),round(10*r)); DrawCircle(x+round(20*r),y-round(14*r),round(10*r)); y:=y-1; x:=x-1; Redraw; OnKeyDown := KeyDown; end;x:=windowwidth-round(50*r);y:=round(50*r); until not f; end.