Светофор: при нажатии '1' цвет больше не выводится - PascalABC.NET
Формулировка задачи:
Решение задачи: «Светофор: при нажатии '1' цвет больше не выводится»
textual
Листинг программы
uses GraphAbc; var Stop: boolean := false; procedure Press(ch: char); begin case ch of '1': window.Clear(clgreen); '2': window.Clear(clorange); '3': window.Clear(clred); #27: stop := True; end; end; begin setwindowsize(600, 600); textout(250, 250, '"Программа "Светофор"'); OnKeyPress := press; repeat sleep(10); // чтобы не жрать ресурсы процессора until Stop; end.
Объяснение кода листинга программы
- Объявлена переменная Stop типа boolean со значением false.
- Определена процедура Press с параметром ch типа char.
- В процедуре Press используется оператор case для определения действия в зависимости от значения параметра ch.
- Если значение параметра ch равно '1', то вызывается метод Clear у объекта window с аргументом clgreen.
- Если значение параметра ch равно '2', то вызывается метод Clear у объекта window с аргументом clorange.
- Если значение параметра ch равно '3', то вызывается метод Clear у объекта window с аргументом clred.
- Если значение параметра ch равно #27 (это символ 'x' в кодировке ASCII), то переменная Stop присваивается значение true.
- Код выходит из процедуры Press.
- Задается размер окна 600x600 пикселей.
- Выводится текст
Программа
Светофор`` на заданное место экрана (250, 250). - Устанавливается обработчик события OnKeyPress на процедуру Press.
- В цикле while выполняется блок кода до тех пор, пока переменная Stop не примет значение true.
- Внутри цикла вызывается метод Sleep, который приостанавливает выполнение программы на 10 миллисекунд для экономии ресурсов процессора.
- Код выходит из цикла while и завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д