Урок 8.
Вложенные циклы
Среди инструкций, включенных в циклы, могут
находиться любые другие инструкции, в том числе и другие циклы.
Иногда такие вложенные циклы помогают проще запрограммировать требуемые
действия.
Вот подобный пример: нужно заполнить весь экран сеткой из небольших кружочков
ярко-зеленого цвета. Это можно сделать так:
SCREEN 9
R=7
FOR X=R TO 639-R STEP 2*R
FOR Y=R TO 349-R STEP 1.5*R
CIRCLE (X,Y),R,10
NEXT Y
NEXT X
END
Поясним программу. Здесь R — радиус каждой окружности.
Задавая различные R, мы будем получать более мелкие или более крупные
окружности. Далее идут два цикла, которые перебирают координаты центров
окружностей. Первый цикл перебирает координаты по X, второй — по Y. Чтобы
окружность целиком поместилась на экран, ее центр должен отстоять от границ
экрана не меньше, чем на радиус. Поэтому в качестве начальной координаты
для центра окружности берется R, а в качестве конечной — максимально возможное
минус R (для режима 9 максимально возможные значения координат 639 по
Х и 349 по Y). Чтобы окружности касались, но не пересекались, расстояние
между соседними центрами должно быть равно диаметру, поэтому шаг изменения
Х выбран 2*R. Напомним, что расстояние между точками экрана по вертикали
и горизонтали разное для разных режимов. Инструкция CIRCLE автоматически
учитывает эту разницу, и окружности действительно выглядят окружностями.
При этом заданное количество точек в радиусе откладывается по горизонтали
(по X), а по вертикали (по Y) их оказывается немного меньше. Чтобы окружности
касались и по вертикали, шаг по Y надо сделать немного меньше, а именно
не 2R, a 1,5R. Обратите внимание, что сначала завершается внутренний цикл
(NEXT Y), а затем внешний цикл (NEXT X).
|