Остановка движения объекта - PascalABC.NET

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

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

Как сделать, чтобы цикл заканчивался при нажатии клавиши, например Q, а не при достижении X ?

Решение задачи: «Остановка движения объекта»

textual
Листинг программы
uses
  GraphABC;
 
var
  stop: boolean := false;
 
procedure mykeypress(ch: char);
begin
  stop := UpCase(ch) = 'Q';
end;
 
var
  X, Y: integer;
 
begin
  OnKeyPress := mykeypress;
  X := 10;
  Y := 10;
  while not stop do
  begin
    brush.Color := clRed;
    FillEllipse(X, Y, X + 10, Y + 10);
    X := X + 1;
    Y := Y + 1;
    brush.Color := clyellow;
    moveto(X, Y);
    sleep(100);
    FillEllipse(X, Y, X + 10, Y + 10);
  end;
end.

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

  1. Объявлены переменные: stop (булевое значение), X, Y (целые значения).
  2. Определена процедура mykeypress, которая принимает символ и проверяет, равен ли он 'Q' (буква 'Q' в верхнем регистре). Если это так, то булево значение переменной stop устанавливается в true.
  3. Переменная OnKeyPress устанавливается в процедуру mykeypress.
  4. Значения X и Y устанавливаются равными 10.
  5. Запускается цикл while, который продолжается до тех пор, пока булево значение переменной stop не станет равным true.
  6. Внутри цикла выполняются следующие действия:
    • Устанавливается цвет кисти в красный (clRed).
    • Заполняется эллипс с координатами X, Y, X+10, Y+10.
    • Значение X увеличивается на 1.
    • Значение Y увеличивается на 1.
    • Устанавливается цвет кисти в желтый (clyellow).
    • Перемещается точка X, Y.
    • Запускается задержка в 100 миллисекунд (sleep(100)).
    • Заполняется эллипс с координатами X, Y, X+10, Y+10.
  7. После завершения цикла while программа завершается.

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


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

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

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