Постройте на экране компьютера сектор, который перемещается при нажатии на клавиши перемещения в указанном направлении. - Turbo Pascal

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

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

Постройте на экране компьютера сектор, который перемещается при нажатии на клавиши перемещения в указанном направлении.

Решение задачи: «Постройте на экране компьютера сектор, который перемещается при нажатии на клавиши перемещения в указанном направлении.»

textual
Листинг программы
uses crt,graph;
var gd,gm:integer;
 
procedure MovePie;
var x,y,x1,y1:integer;
    k:char;
    move:boolean;
begin
x:=300;y:=240;
move:=true;
repeat
if keypressed then
  begin
    k:=readkey;
    if k=#80 then
      begin
        y1:=y;
        x1:=x;
        y:=y+5;
        move:=true;
      end;
    if k=#72 then
      begin
        y1:=y;
        x1:=x;
        y:=y-5;
        move:=true;
      end;
    if k=#77 then
      begin
        y1:=y;
        x1:=x;
        x:=x+5;
        move:=true;
      end;
    if k=#75 then
      begin
        y1:=y;
        x1:=x;
        x:=x-5;
        move:=true;
      end;
  end;
if move then
  begin
   Setcolor(12);
   PieSlice(x1,y1,60,120,50);
   setfillstyle(1,12);
   floodfill(x1,y1-5,12);
   cleardevice;
   PieSlice(x,y,60,120,50);
   setfillstyle(1,12);
   floodfill(x,y-5,12);
   move:=false;
  end;
until k=#27;
end;
begin
gd:=detect;
Initgraph(gd,gm,'');
OutTextXY(200,20,'Uprawlenye strelkami,  Vyhod-Esc');
OutTextXY(250,50,'Press Enter...');
readln;
MovePie;
closegraph
end.

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

Код написан на Turbo Pascal и выполняет следующие действия:

  1. Объявляет переменные gd и gm типа integer, которые используются для работы с графическим интерфейсом.
  2. Определяет процедуру MovePie, которая будет перемещать сектор на экране при нажатии клавиш.
  3. Инициализирует переменные x, y, x1 и y1 для хранения координат сектора. Переменная move устанавливается в значение true, чтобы отслеживать нажатие клавиш.
  4. В цикле while происходит проверка нажатия клавиш. Если нажата клавиша #80 (вверх), то сектор перемещается вверх, если #72 (вниз), то сектор перемещается вниз, если #77 (вправо), то сектор перемещается вправо, если #75 (влево), то сектор перемещается влево. При любом из этих действий переменная move устанавливается в значение true.
  5. Если переменная move равна true, то на экран выводятся сектор и его отражение.
  6. После завершения цикла while происходит выход из программы при нажатии клавиши #27.
  7. В начале программы подключается библиотека crt для работы с консолью, а также библиотека graph для работы с графикой.
  8. Задаются начальные координаты сектора (x=300, y=240).
  9. Выводится сообщение Uprawlenye strelkami, Vyhod-Esc в верхнем левом углу экрана.
  10. Выводится сообщение Press Enter..., которое будет отображаться до тех пор, пока не будет нажата клавиша Enter.
  11. Вызывается функция Initgraph, которая инициализирует графический интерфейс.
  12. Выводится текст MovePie в центре экрана.
  13. Вызывается функция OutTextXY, которая выводит текст в указанном месте экрана.
  14. Вызывается функция readln, которая ожидает ввода пользователя и сохраняет его в переменной k.
  15. Вызывается функция MovePie, которая будет выполняться до тех пор, пока пользователь не нажмет клавишу #27.
  16. После завершения работы с графическим интерфейсом вызывается функция closegraph для его закрытия.

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

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