Организуйте перемещение по пунктам меню с помощью клавиш - Turbo Pascal
Формулировка задачи:
Организуйте перемещение по пунктам меню с помощью клавиш Стрелка вверх и Стрелка вниз. После выбора какого-нибудь пункта меню клавишей Enter выведите в окошко текст этого пункта(GROUP — номер вашей группы, NAME — ваше имя, FIO — вашу фамилию, DATA — системную дату (только год)). При выборе последнего пункта завершите программу
Решение задачи: «Организуйте перемещение по пунктам меню с помощью клавиш»
textual
Листинг программы
uses crt,dos; const kol=5;{количество пунктов меню} {массив названий пунктов меню} vybor:array[1..kol] of string= ('1-GROUP','2-NAME ','3-FIO','4-DATA','5-EXIT'); procedure Menu(var k:byte);{создание и вывод на экран меню} var kod: char; i:byte; begin window(1,1,80,25); textbackground(0); clrscr; k:=1; gotoxy(4,1); write('Меню'); k:=1; {выведен первый пункт меню} repeat for i:=1 to kol do begin if i=k then {выделенный пункт} begin textbackground(3); textcolor(9); end else {остальные} begin textbackground(0); textcolor(15) end; gotoxy(1,i+1);{ставим курсор} write(vybor[i]);{выводим пункты} end; repeat kod:=readkey; until Kod in [#13, #72, #80]; case Kod of #72: begin{стрелка вверх} k:=k-1; if k=0 then k:=5;{если выше верха, вниз} end; #80: begin {стрелка вниз} k:=k+1; if k=6 then k:=1;{если ниже низа, вверх} end; end; until kod=#13;{нажат Enter, выходим из меню в выбранную процедуру} end; {основная программа} var k:byte; h,m,d,w:word; begin repeat textbackground(0); textcolor(15); Menu(k);{выводим меню} clrscr; case k of{выбираем стрелками действие} 1: begin write('Номер группы 1234'); readln; end; 2: begin write('Имя Юрий'); readln; end; 3: begin write('Фамилия Пупорев'); readln; end; 4: begin getdate(h,m,d,w); write('Год ',h); readln; end; 5: exit; end; until k=5; end.
Объяснение кода листинга программы
- В начале кода подключаются необходимые библиотеки crt и dos.
- Затем определяется переменная kol, которая содержит количество пунктов меню.
- Далее определяется массив vybor, который содержит названия пунктов меню.
- Прописывается процедура Menu, которая создает и выводит на экран меню. Внутри этой процедуры переменная k используется для отслеживания текущего выбранного пункта меню.
- В цикле repeat-until происходит взаимодействие пользователя с меню. Если нажата клавиша #72 (стрелка вверх), то значение переменной k уменьшается на 1, а если k равно 0, то устанавливается равным 5 (для перехода к верхнему пункту меню). Если нажата клавиша #80 (стрелка вниз), то значение переменной k увеличивается на 1, а если k равно 6, то устанавливается равным 1 (для перехода к нижнему пункту меню).
- После выхода из цикла меню, программа переходит к основной части программы. Здесь определяется цикл repeat-until, внутри которого вызывается процедура Menu с текущим значением переменной k. Затем выполняется очистка экрана и происходит переход к следующему пункту меню в зависимости от значения k.
- В основной части программы также определены переменные h, m, d, w, которые используются для получения даты.
- В конце программы прописывается условие до тех пор, пока значение переменной k не станет равным 5, после чего программа завершается.