Вот как надо:
Код
Program www;
uses crt,graph;
var c:char;
menu:array[0..2]of string;
item,i:integer;
procedure Zastavka;
procedure DrawFon; {рисуем фон}
begin
setfillstyle(9,blue);
bar(0,0,640,75);
setcolor(14);
circle(45,40,30);
setfillstyle(1,14);
floodfill(45,40,14);
setcolor(6);
setlinestyle(0,0,3);
line(200,100,400,100);
line(200,300,200,100);
line(400,300,400,100);
line(260,250,260,100);
line(340,250,340,100);
setfillstyle(1,darkgray);
bar(250,250,350,260);
setfillstyle(1,green);
Bar(0,300,640,360);
setlinestyle(0,0,3);
end;
procedure DrawKach(x,y:integer); {рисуем качели со смещением по x и y}
begin
setcolor(6);
line(260+x,250-y,260,100);
line(340+x,250-y,340,100);
setfillstyle(1,darkgray);
bar(250+x,250-y,350+x,260-y);
end;
procedure DrawNoKach(x,y:integer); {стираем качели со смещением по x и y}
begin
setcolor(0);
line(260+x,250-y,260,100);
line(340+x,250-y,340,100);
setfillstyle(1,black);
bar(250+x,250-y,350+x,260-y);
end;
var driver,mode:integer;
t,h :real;
begin
h:=2*pi/400;
t:=0;
driver:=VGA; mode:=VGAhi;
InitGraph(driver,mode,'C:\BP\BGI');
DrawFon;
repeat
DrawNoKach(trunc(20*(sin(t))),trunc(20*(1-cos(sin(t)))));
t:=t+h;
if t>2*pi then t:=0;
DrawKach(trunc(20*(sin(t))),trunc(20*(1-cos(sin(t)))));
delay(1000);
until keypressed;
CloseGraph;
end;
procedure Zadacha;
begin
clrscr;
Writeln('zadacha=)');
readln;
end;
begin
menu[0]:='1.Zastavka';
menu[1]:='2.Zadacha';
menu[2]:='3.Vyhod';
item:=0;
while true do begin
clrscr;
for i:=0 to 2 do begin
if i=item
then begin
textcolor(15);
textbackground(5);
end
else begin
textcolor(7);
textbackground(0);
end;
writeln(menu[i]);
end;
textbackground(0);
case readkey of
#0: case readkey of
#72: if item>0 then item := item - 1;
#80: if item<2 then item := item + 1;
end;
#13: case item of
0: Zastavka;
1: Zadacha;
2: Halt;
end;
'1': Zastavka;
'2': Zadacha;
'3': Halt;
end;
end;
end.
И учите процедуры...

Никогда не жадничай. Свои проблемы с любовью дари людям!