Светофор: при нажатии '1' цвет больше не выводится - PascalABC.NET

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

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

Листинг программы
  1. uses crt,graphAbc;
  2. begin
  3. begin
  4. setwindowsize(600,600);
  5. textout(250,250,'"Программа "Светофор"');
  6. end;
  7. if readkey = '1' then window.Clear(clgreen);
  8. if readkey = '2' then window.Clear(clorange);
  9. if readkey = '3' then window.Clear(clred);
  10. end.

Решение задачи: «Светофор: при нажатии '1' цвет больше не выводится»

textual
Листинг программы
  1. uses GraphAbc;
  2.  
  3. var
  4.   Stop: boolean := false;
  5.  
  6. procedure Press(ch: char);
  7. begin
  8.   case ch of
  9.     '1': window.Clear(clgreen);
  10.     '2': window.Clear(clorange);
  11.     '3': window.Clear(clred);
  12.     #27: stop := True;
  13.   end;
  14. end;
  15.  
  16. begin
  17.   setwindowsize(600, 600);
  18.   textout(250, 250, '"Программа "Светофор"');    
  19.   OnKeyPress := press;
  20.   repeat
  21.     sleep(10); // чтобы не жрать ресурсы процессора
  22.   until Stop;
  23. end.

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

  1. Объявлена переменная Stop типа boolean со значением false.
  2. Определена процедура Press с параметром ch типа char.
  3. В процедуре Press используется оператор case для определения действия в зависимости от значения параметра ch.
  4. Если значение параметра ch равно '1', то вызывается метод Clear у объекта window с аргументом clgreen.
  5. Если значение параметра ch равно '2', то вызывается метод Clear у объекта window с аргументом clorange.
  6. Если значение параметра ch равно '3', то вызывается метод Clear у объекта window с аргументом clred.
  7. Если значение параметра ch равно #27 (это символ 'x' в кодировке ASCII), то переменная Stop присваивается значение true.
  8. Код выходит из процедуры Press.
  9. Задается размер окна 600x600 пикселей.
  10. Выводится текст ПрограммаСветофор`` на заданное место экрана (250, 250).
  11. Устанавливается обработчик события OnKeyPress на процедуру Press.
  12. В цикле while выполняется блок кода до тех пор, пока переменная Stop не примет значение true.
  13. Внутри цикла вызывается метод Sleep, который приостанавливает выполнение программы на 10 миллисекунд для экономии ресурсов процессора.
  14. Код выходит из цикла while и завершается.

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


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

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

15   голосов , оценка 3.6 из 5

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

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

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