Светофор: при нажатии '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.

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

  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
Похожие ответы