Создание и вывод меню - Pascal ABC
Формулировка задачи:
1.Вывести на экран монитора систему меню, расположенную горизонтально или
вертикально. Перед выводом системы меню необходимо вывести заставку.
2. В любой момент времени должен быть выбран только один элемент меню,
который должен выделяться с помощью другого цвета, повышенной или пониженной
интенсивности свечения, выделения первой буквы в названии или иным способом.
3. Необходимо иметь возможность перемещаться по пунктам горизонтальной
системы меню с помощью клавиш <Стрелка влево> и <Стрелка вправо>, а по пунктам
вертикальной системы меню с помощью клавиш <Стрелка вверх> и <Стрелка вниз>.
4. Необходимо иметь возможность выбора элемента меню нажатием на клавишу
<Enter> или какую-либо другую аналогичную клавишу.
5. Необходимо иметь возможность выхода из системы меню нажатием на клавишу
<Esc> или какую-либо другую аналогичную клавишу.
Заставка:Выбор учебного предмета;
Элементы меню:1)Физика;2)Математика;3)Химия;4)Биология;
Тип меню:Вертикальное
Информационное сообщение:"Выбран учебный предмет<...>"
Решение задачи: «Создание и вывод меню»
textual
Листинг программы
uses crt; {массив названий пунктов меню} const vybor:array[1..5] of string=('1-Физика', '2-Математика', '3-Химия', '4-Биология', '5-Выход'); procedure Menyu(var k:byte;kol:byte); var kod: char; i:byte; begin clrscr; k:=1; gotoxy(1,1); repeat for i:=1 to kol do begin if i=k then begin textbackground(2); textcolor(1); end else begin textbackground(7); textcolor(0) end; gotoxy(1,i); write(vybor[i]); end; writeln; textbackground(0); textcolor(15); write('Для выхода можно нажать Esc..'); repeat kod:=readkey; until kod in [#32, #72, #80,#27]; case kod of #72: begin {стрелка вверх} k:=k-1; if k=0 then k:=kol;{если верхний край, вниз} end; #80: begin {стрелка вниз} k:=k+1; if k>kol then k:=1;{если нижний край, вверх} end; #27:begin{возможность выхода по Esc} k:=5; exit; end; end; until kod in [#32,#27]; end; var k:byte; begin textbackground(3); textcolor(14); clrscr; gotoXY(30,11); write('ВЫБОР УЧЕБНОГО ПРЕДМЕТА'); gotoXY(25,12); write('перемещение по меню стрелки вверх и вниз'); gotoXY(29,13); write('выбор пункта меню клавиша ПРОБЕЛ'); textcolor(15); gotoXY(35,15); write('нажмите Enter'); readln; repeat Menyu(k,5);{выводим меню} case k of{выбираем стрелками действие} 1:begin clrscr; writeln('Выбран учебный предмет Физика'); write('нажмите Enter'); readln; end; 2:begin clrscr; writeln('Выбран учебный предмет Математика'); write('нажмите Enter'); readln; end; 3:begin clrscr; writeln('Выбран учебный предмет Химия'); write('нажмите Enter'); readln; end; 4:begin clrscr; writeln('Выбран учебный предмет Биология'); write('нажмите Enter'); readln; end; end; until k=5; end.
Объяснение кода листинга программы
- В начале кода объявлены две константы:
vybor
(массив названий пунктов меню) иkod
(переменная для хранения выбранного ключа). - Далее следует процедура
Menyu
, которая выводит меню на экран и обрабатывает нажатия клавиш для перемещения по меню. - После этого объявлены две переменные:
k
(для хранения текущего выбранного пункта меню) иkol
(для хранения количества элементов в меню). - Затем следует основной блок кода, который начинается с вывода на экран сообщения
ВЫБОР УЧЕБНОГО ПРЕДМЕТА
и инструкций по использованию меню. - Далее идет бесконечный цикл, который продолжается до тех пор, пока пользователь не нажмет Enter.
- Внутри цикла вызывается процедура
Menyu
, которая выводит меню на экран. - После этого следует блок обработки выбора пользователя: если выбрана стрелка вверх, то текущий выбранный пункт меню становится предыдущим, если выбрана стрелка вниз, то текущий выбранный пункт меню становится следующим.
- Если выбран пробел, то выполняется соответствующая операция в зависимости от текущего выбранного пункта меню.
- Если выбрано действие (например, выбор пункта меню), то выполняется соответствующий блок кода.
- Если выбран выход по Esc, то выполняется выход из программы.
- Если выбран пункт меню
Физика
, то выводится сообщениеВыбран учебный предмет Физика
. - Если выбран пункт меню
Математика
, то выводится сообщениеВыбран учебный предмет Математика
. - Если выбран пункт меню
Химия
, то выводится сообщениеВыбран учебный предмет Химия
. - Если выбран пункт меню
Биология
, то выводится сообщениеВыбран учебный предмет Биология
. - Если выбран пункт меню
Выход
, то выполняется выход из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д