Воспроизведение звука при нажатии на клавишу - Turbo Pascal

Формулировка задачи:

КонецСвета, Спасибо большое) Всё работает) Рад очень помощи) Но вот думаю может поможешь а то тоже в тупик зашел короче нужно сделать чтобы когда нажимаешь на стрелочку вверх и вниз был звук к примеру 478 или 578 без разницы.) Код клавиш 82 и 72, эт так на всякий случай)
program kurs;
uses crt,dos;
label l2;
type
mas=array[1..4] of string;
const
menu:mas=('1.Сведение об авторе','2.Справка по программе','3.Вычисления','4.Выход');
var
 a:array[1..20] of integer;
pos:integer;
k:char;kod:integer;
procedure cursize(s:word);
var
regs:registers;
begin
with regs do
begin
AH:=$01;
CH:=Hi(s);
Cl:=Lo(s);
intr($10,regs);
end;
end;
procedure hidcur;
begin
cursize($2000);
end;
procedure nc;
begin
cursize($0607);
end;
procedure menu1;
var
i:integer;
begin
clrscr;
window(1,1,80,50);
textbackground(blue);
clrscr;
window(25,20,55,30);
textbackground(10);
clrscr;
for i:=1 to 4 do
begin
gotoxy(3,i+1);
if i=pos then textbackground(3) else textbackground(10);
write(menu[i]);
end;
hidcur;
end;
begin
clrscr;
menu1;
l2:
pos:=1;
menu1;
k:=readkey;
while k<>#13 do
begin
case k of
#72:if pos=1 then pos:=4 else pos:=pos-1;
#80:if pos=4 then pos:=1 else pos:=pos+1;
end;
menu1;
k:=readkey;
kod:=ord(k);
case kod of
49:begin sound(478);delay(20000);nosound;end;
50:begin sound(578);delay(20000);nosound;end;
51:begin sound(678);delay(20000);nosound;end;
52:begin sound(778);delay(20000);nosound;exit;end;
end;
end;
case pos of
1:begin sound(478);delay(20000);nosound;end;
2:begin sound(578);delay(20000);nosound;end;
3:begin sound(678);delay(20000);nosound;end;
4:begin sound(778);delay(20000);nosound;exit;end;
end;
goto l2;
end.
Добавлено через 14 минут КонецСвета, Тут как бы всё сделано, но вот чисто не пашет как ни пробывал чтобы звук был именно на стрелочки верх и низ.. И вот хоть убейся не могу)

Код к задаче: «Воспроизведение звука при нажатии на клавишу - Turbo Pascal»

textual
uses crt,dos;
label l2;
type
mas=array[1..4] of string;
const
menu:mas=('1.Сведение об авторе','2.Справка по программе','3.Вычисления','4.Выход');
var
 a:array[1..20] of integer;
pos:integer;
k:char;kod:integer;
procedure cursize(s:word);
var
regs:registers;
begin
with regs do
begin
AH:=$01;
CH:=Hi(s);
Cl:=Lo(s);
intr($10,regs);
end;
end;
procedure hidcur;
begin
cursize($2000);
end;
procedure nc;
begin
cursize($0607);
end;
procedure menu1;
var
i:integer;
begin
clrscr;
window(1,1,80,50);
textbackground(blue);
clrscr;
window(25,20,55,30);
textbackground(10);
clrscr;
for i:=1 to 4 do
begin
gotoxy(3,i+1);
if i=pos then textbackground(3) else textbackground(10);
write(menu[i]);
end;
hidcur;
end;
begin
clrscr;
menu1;
l2:
pos:=1;
menu1;
k:=readkey;
while k<>#13 do
begin
case k of
#72:if pos=1 then
             begin
             pos:=4;
             sound(478);
             delay(20000);
             nosound;
             end
              else
                  begin
                  pos:=pos-1;
                  sound(578);
                  delay(20000);
                  nosound;
                  end;
#80:if pos=4 then
       begin
       pos:=1;
       sound(578);
       delay(20000);
       nosound;
       end
         else
             begin
             pos:=pos+1;
             sound(478);
             delay(20000);
             nosound;
             end;
end;
menu1;
k:=readkey;
kod:=ord(k);
case kod of
49:begin sound(478);delay(20000);nosound;end;
50:begin sound(578);delay(20000);nosound;end;
51:begin sound(678);delay(20000);nosound;end;
52:begin sound(778);delay(20000);nosound;exit;end;
end;
end;
case pos of
1:begin sound(478);delay(20000);nosound;end;
2:begin sound(578);delay(20000);nosound;end;
3:begin sound(678);delay(20000);nosound;end;
4:begin sound(778);delay(20000);nosound;exit;end;
end;
goto l2;
end.

12   голосов, оценка 4.083 из 5


СОХРАНИТЬ ССЫЛКУ