Простое меню: Сложение Вычитание Деление Умножение - 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.

Объяснение кода листинга программы

  1. Объявлена константа n со значением 4, которая определяет количество элементов в меню.
  2. Объявлен массив menu типа string размером 1..n, содержащий названия операций: 'Сложение', 'Вычитание', 'Деление', 'Умножение'.
  3. Объявлена функция show_menu, которая выводит меню на экран и ожидает выбора операции пользователем.
  4. В функции show_menu переменной s присваивается значение 1, которое определяет начальный выбранный пункт меню.
  5. В цикле repeat происходит вывод меню на экран.
  6. В каждой итерации цикла проверяется, является ли текущий пункт меню выбранным. Если да, то цвет текста меняется на светло-красный, иначе на светло-серый.
  7. После цикла выполняется чтение ключа клавиатуры.
  8. Если нажата клавиша Enter (#13), то цикл завершается.
  9. Если нажата клавиша стрелки вверх (#72) и выбранный пункт меню больше 1, то значение переменной s уменьшается на 1.
  10. Если нажата клавиша стрелки вниз (#80) и выбранный пункт меню меньше 4, то значение переменной s увеличивается на 1.
  11. После выхода из цикла выполняется чтение ключа клавиатуры.
  12. Если нажата клавиша Enter (#13), то значение переменной s присваивается функции show_menu.
  13. В основной части программы вызывается функция show_menu.
  14. Выведен результат выполнения функции show_menu - выбранная операция.
  15. Программа ожидает нажатия клавиши Enter (#13) для завершения работы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы