uses crt,graph;
var gd,gm:integer;
x,y,x1,y1:integer;{координаты центра круга}
c1,c2:byte;{цвет круга}
k:char;{символ нажатой клавиши}
move:boolean;{переключатель рисования круга цветным и черным}
begin
gd:=detect;
Initgraph(gd,gm,'');
x:=20;y:=150;{начальное положение курсора}
c1:=12;c2:=0;{чвет, ярко-крачный и черный}
move:=true;{рисуем красным}
repeat
if keypressed then{если нажата клавиша}
begin
k:=readkey;{читаем ее символ}
if k=#80 then{стрелка вниз}
begin
y1:=y;{новое значение у}
x1:=x;{новое значение х}
y:=y+5;{вниз на 5 пикселей}
move:=true;{рисуем красным}
end;
if k=#72 then{ввер}
begin
y1:=y;
x1:=x;
y:=y-5;
move:=true;
end;
if k=#77 then{вправо}
begin
y1:=y;
x1:=x;
x:=x+5;
move:=true;
end;
if k=#75 then{влево}
begin
y1:=y;
x1:=x;
x:=x-5;
move:=true;
end;
end;
if move then {если рисум}
begin
Setcolor(c2);{цвет красный}
Circle(x1,y1,10);{граница круга}
Setfillstyle(1,c2);{сплошная закраска красным}
Fillellipse(x1,y1,10,10);{круг}
Setcolor(c1);{тоже, но черным(стираем)}
Circle(x,y,10);
Setfillstyle(1,c1);
Fillellipse(x,y,10,10);
move:=false;{не рисуем}
end;
until k=#27;{если Esc, то выход, в Вашей программе этот цикл не надо}
closegraph
end.