Сформировать движущуюся окружность - QBasic
Формулировка задачи:
Доброго времени суток! Помогите решить задачку...
Сформировать движущуюся окружность радиуса r, центр которой перемещается попеременно с обоих направлениях вдоль наклонного отрезка с заданными границами.
Заранее спасибо!
Решение задачи: «Сформировать движущуюся окружность»
textual
Листинг программы
- INPUT r
- INPUT a, b
- SCREEN 7, , 0, 1
- x = a
- y = a
- sx = 8
- sy = 5
- WHILE INKEY$ = ""
- PCOPY 0, 1
- CIRCLE (x, y), r, 0
- PAINT (x, y), 0
- x = x + sx
- y = y + sy
- CIRCLE (x, y), r, 15
- PAINT (x, y), 15
- IF y > b OR y < a THEN sy = -sy: sx = -sx
- t = TIMER
- WHILE t = TIMER
- WEND
- WEND
Объяснение кода листинга программы
- Ввод радиуса окружности с помощью команды INPUT r.
- Ввод координат центра окружности с помощью команды INPUT a, b.
- Установка начальных значений переменных x и y равными введенному значению переменной a.
- Установка начальных значений переменных sx и sy равными 8 и 5 соответственно.
- Запуск цикла WHILE INKEY$ =
с помощью команды WHILE INKEY$ =
. - Внутри цикла:
- Копирование текущего кадра экрана на буфер с помощью команды PCOPY 0, 1.
- Рисование окружности с помощью команды CIRCLE (x, y), r, 0.
- Рисование точки в центре окружности с помощью команды PAINT (x, y), 0.
- Увеличение значения переменной x на sx и увеличение значения переменной y на sy.
- Рисование окружности с новыми координатами центра с помощью команды CIRCLE (x, y), r, 15.
- Рисование точки в центре окружности с помощью команды PAINT (x, y), 15.
- Проверка, не выходят ли текущие координаты за пределы заданного диапазона (переменные a и b). Если выходят, то изменение значений переменных sx и sy на противоположные.
- Запуск цикла WHILE t = TIMER с помощью команды WHILE t = TIMER.
- Цикл продолжается до тех пор, пока значение переменной t не изменится.
- Выход из цикла WHILE INKEY$ = `` с помощью команды WEND.
- Выход из цикла WHILE t = TIMER с помощью команды WEND.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д