Движение символа по кругу - Turbo Pascal
Формулировка задачи:
Ввести любой символ в середине экрана. Нажатием клавиши Enter сделать движение этого символа по кругу с радиусом 4.
Решение задачи: «Движение символа по кругу»
textual
Листинг программы
uses crt; var i:real; x,y:integer; begin clrscr; gotoXY(39,13); write('O'); gotoXY(35,25); write('Нажмите Enter'); readln; clrscr; i:=0; {ячейка 8х12, поэтому по Х 4, по Y 3} repeat x:=40+round(4*cos(i*pi/80)); y:=13+round(3*sin(i*pi/80)); gotoXY(x,y); write('O'); delay(50); gotoXY(x,y); write(' '); i:=i+1; until keypressed; readln end.
Объяснение кода листинга программы
- В начале кода подключается библиотека crt, которая является стандартной для Turbo Pascal и используется для работы с консолью.
- Переменная i объявляется как real, что позволяет ей хранить числовые значения с плавающей точкой.
- Переменные x и y объявляются как integer, что позволяет им хранить целые числа.
- Функция gotoxy() используется для перемещения курсора на указанные координаты. В данном случае, курсор перемещается на экран (39,13), чтобы отобразить символ 'O', а затем на (35,25) для отображения сообщения
Нажмите Enter
. - Строка clrscr() используется для очистки экрана перед началом нового цикла.
- Переменная i инициализируется значением 0.
- Цикл repeat используется для непрерывного повторения блока кода до тех пор, пока не будет нажата клавиша.
- Внутри цикла переменные x и y инициализируются значениями, полученными из функций cos() и sin() соответственно. Координаты (40+round(4cos(ipi/80)), 13+round(3sin(ipi/80)) используются для перемещения курсора на экран.
- Символ 'O' отображается на экране с помощью функции write().
- Функция delay(50) используется для задержки выполнения программы на 50 миллисекунд.
- После каждого перемещения курсора на экран, переменная i увеличивается на 1.
- Цикл продолжается до тех пор, пока не будет нажата клавиша.
- После окончания цикла, функция readln() используется для чтения нажатой клавиши.
- Конец программы.