Простое меню: Сложение Вычитание Деление Умножение - Free Pascal
Формулировка задачи:
Как сделать, чтобы был дан список меню, и при нажатии клавиш ↑ и ↓ менялся цвет определенной строки? Например, чтобы при нажатии ↓ и ↓ выделилось Деление
Сложение
Вычитание
Деление
Умножение
Решение задачи: «Простое меню: Сложение Вычитание Деление Умножение»
textual
Листинг программы
uses crt; const n=4; menu: array[1..n] of string=( 'Сложение', 'Вычитание', 'Деление', 'Умножение' ); function show_menu: integer; var i,s: integer; k: char; begin s:=1; repeat clrscr; textcolor(white); writeln('Меню:'); for i:=1 to n do begin if s=i then textcolor(lightred) else textcolor(lightgray); writeln(menu[i]); end; k:=readkey; if k=#0 then begin k:=readkey; if (k=#72) and (s>1) then dec(s); if (k=#80) and (s<n) then inc(s); end; until k=#13; textcolor(lightgray); clrscr; show_menu:=s; end; var s: integer; begin s:=show_menu; writeln('Выбрано: ', menu[s]); readln; end.
Объяснение кода листинга программы
- Объявлена константа
n
со значением 4, которая определяет количество элементов в меню. - Объявлен массив
menu
типаstring
размером 1..n, содержащий названия операций: 'Сложение', 'Вычитание', 'Деление', 'Умножение'. - Объявлена функция
show_menu
, которая выводит меню на экран и ожидает выбора операции пользователем. - В функции
show_menu
переменнойs
присваивается значение 1, которое определяет начальный выбранный пункт меню. - В цикле
repeat
происходит вывод меню на экран. - В каждой итерации цикла проверяется, является ли текущий пункт меню выбранным. Если да, то цвет текста меняется на светло-красный, иначе на светло-серый.
- После цикла выполняется чтение ключа клавиатуры.
- Если нажата клавиша Enter (#13), то цикл завершается.
- Если нажата клавиша стрелки вверх (#72) и выбранный пункт меню больше 1, то значение переменной
s
уменьшается на 1. - Если нажата клавиша стрелки вниз (#80) и выбранный пункт меню меньше 4, то значение переменной
s
увеличивается на 1. - После выхода из цикла выполняется чтение ключа клавиатуры.
- Если нажата клавиша Enter (#13), то значение переменной
s
присваивается функцииshow_menu
. - В основной части программы вызывается функция
show_menu
. - Выведен результат выполнения функции
show_menu
- выбранная операция. - Программа ожидает нажатия клавиши Enter (#13) для завершения работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д