Постройте на экране компьютера сектор, который перемещается при нажатии на клавиши перемещения в указанном направлении. - 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 и выполняет следующие действия:
- Объявляет переменные gd и gm типа integer, которые используются для работы с графическим интерфейсом.
- Определяет процедуру MovePie, которая будет перемещать сектор на экране при нажатии клавиш.
- Инициализирует переменные x, y, x1 и y1 для хранения координат сектора. Переменная move устанавливается в значение true, чтобы отслеживать нажатие клавиш.
- В цикле while происходит проверка нажатия клавиш. Если нажата клавиша #80 (вверх), то сектор перемещается вверх, если #72 (вниз), то сектор перемещается вниз, если #77 (вправо), то сектор перемещается вправо, если #75 (влево), то сектор перемещается влево. При любом из этих действий переменная move устанавливается в значение true.
- Если переменная move равна true, то на экран выводятся сектор и его отражение.
- После завершения цикла while происходит выход из программы при нажатии клавиши #27.
- В начале программы подключается библиотека crt для работы с консолью, а также библиотека graph для работы с графикой.
- Задаются начальные координаты сектора (x=300, y=240).
- Выводится сообщение
Uprawlenye strelkami, Vyhod-Esc
в верхнем левом углу экрана. - Выводится сообщение
Press Enter...
, которое будет отображаться до тех пор, пока не будет нажата клавиша Enter. - Вызывается функция Initgraph, которая инициализирует графический интерфейс.
- Выводится текст
MovePie
в центре экрана. - Вызывается функция OutTextXY, которая выводит текст в указанном месте экрана.
- Вызывается функция readln, которая ожидает ввода пользователя и сохраняет его в переменной k.
- Вызывается функция MovePie, которая будет выполняться до тех пор, пока пользователь не нажмет клавишу #27.
- После завершения работы с графическим интерфейсом вызывается функция closegraph для его закрытия.