Рассмотрим практическую работу по рисованию с использованием Цикла в QBasic. Узоры, как правило, состоят из повторяющихся определенным образом элементов. В данной статье рассмотрим, как нарисовать несложные узоры в QBasic.
Цикл – многократное выполнение последовательности команд программы.
B QBasic цикл выглядит следующим образом:
FOR I=1 TO N
ПОСЛЕДОВАТЕЛЬНОСТЬ КОМАНД
NEXT I
Где I – переменная-счетчик (от нее зависит, сколько раз будет выполнен цикл), переменная, которая изменяется от начального значения до конечного с каждой итерацией.
Рассмотрим несколько примеров использования цикла при рисовании в QBasic
Задача.
Нарисовать рамочку из окружностей. (7х7). Радиус окружности равен 30.
Шаг 1. Верхняя граница рамочки. Расчет координат
Организуем цикл
Нам нужно изменять координаты центра в цикле, чтобы получить набор из 7 окружностей, расположенных так, как показано на рисунке. Рассмотрим:
Расстояние между центрами двух соседних окружностей равно 60 (радиус первой окружности плюс радиус второй окружности). Значит координаты
1 окружности – (50, 50)
2 окружности – (110, 50)
3 окружности – (170, 50)
4 окружности – (230, 50) и т.д.
Таким образом, команда CIRCLE в цикле должна выглядеть следующим образом:
CIRCLE(50+60*i, 50), 30
Значение переменной I изменяется от 0 до 6. Тем самым, мы получим требуемые координаты центров окружностей.
Левая окружность будет иметь координаты центра (50, 50), а правая – (410, 50). Смотри рисунок:
Получим:
SCREEN 12
FOR i = 0 TO 6
CIRCLE (50+60*i, 50), 30
NEXT i
Шаг 2. Левая граница рамочки. Расчет координат
Определение формулы координат аналогично рассмотренному выше. Отличие в том, что изменение происходят по оси Y. Т.е.:
CIRCLE (50, 50+30*i), 30
Верхняя окружность будет иметь координаты (50, 50), а нижняя (50, 50+60*6) или (50, 410). Смотри рисунок ниже:
Получим:
SCREEN 12
FOR i = 0 TO 6
CIRCLE (50 + 60 * i, 50), 30
CIRCLE (50, 50 + 60 * i), 30
NEXT i
Шаг 3. Правая и нижняя граница.
Аналогично рассуждая, легко записать формулы, определяющие координаты центров окружностей левой и нижней стороны нашей рамочки
CIRCLE (50 + 60 * i, 410), 30 — нижняя сторона рамочки
CIRCLE (410, 50 + 60 * i), 30 — правая сторона рамочки
Получим
SCREEN 12
FOR i = 0 TO 6
CIRCLE (50 + 60 * i, 50), 30
CIRCLE (50, 50 + 60 * i), 30
CIRCLE (50 + 60 * i, 410), 30
CIRCLE (410, 50 + 60 * i), 30
NEXT i
Задание для самостоятельного выполнения.
Нарисуйте узор. Рекомендуется не использовать вложенный цикл. Цель – не научить языку программирования, а научиться мыслить и делать выводы.