Простое меню: Сложение Вычитание Деление Умножение - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Как сделать, чтобы был дан список меню, и при нажатии клавиш ↑ и ↓ менялся цвет определенной строки? Например, чтобы при нажатии ↓ и ↓ выделилось Деление Сложение Вычитание Деление Умножение

Решение задачи: «Простое меню: Сложение Вычитание Деление Умножение»

textual
Листинг программы
  1. uses
  2.   crt;
  3.  
  4. const
  5.   n=4;
  6.   menu: array[1..n] of string=(
  7.       'Сложение',
  8.       'Вычитание',
  9.       'Деление',
  10.       'Умножение'
  11.     );
  12.  
  13. function show_menu: integer;
  14. var
  15.   i,s: integer;
  16.   k: char;
  17. begin
  18.   s:=1;
  19.   repeat
  20.     clrscr;
  21.     textcolor(white);
  22.     writeln('Меню:');
  23.     for i:=1 to n do begin
  24.       if s=i then textcolor(lightred)
  25.       else textcolor(lightgray);
  26.       writeln(menu[i]);
  27.     end;
  28.     k:=readkey;
  29.     if k=#0 then begin
  30.       k:=readkey;
  31.       if (k=#72) and (s>1) then dec(s);
  32.       if (k=#80) and (s<n) then inc(s);
  33.     end;
  34.   until k=#13;
  35.   textcolor(lightgray);
  36.   clrscr;
  37.   show_menu:=s;
  38. end;
  39.  
  40. var
  41.   s: integer;
  42.  
  43. begin
  44.   s:=show_menu;
  45.   writeln('Выбрано: ', menu[s]);
  46.   readln;
  47. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы