Простое меню: Сложение Вычитание Деление Умножение - 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) для завершения работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д