Вложенные циклы
В предыдущем разделе мы рассмотрели случаи, когда в цикле изменяются несколько величин, но их можно выразить друг через друга. Сейчас нам надо рассмотреть ситуации, когда изменяются несколько независимых величин.
Приведем пример. Напишем программу заполнения экрана точками с расстоянием между ними по горизонтали и вертикали 10.
SCREEN 9 FOR X=0 TO 64 0 STEP 10 FOR Y=0 TO 350 STEP 10 PSET(X, Y), 4 NEXT Y NEXT X
Работает программа таким образом. В первом заголовке цикла переменной X присваивается значение 0. Потом программа переходит к выполнению следующего оператора, т. е. в нашем случае, второго цикла, который и исполняется, пока Y не превысит значение 350. После этого берется следующее значение X, и действия с Y повторяются. И так до тех пор, пока X не станет больше 640. То есть программа строит вертикальные цепочки точек, пока не заполнится весь экран.
Все это не так сложно, если понять и запомнить следующее. Циклы должны быть вложены друг в друга, как матрешки. Параметры, упоминаемые в заголовках циклов, в их окончаниях должны быть перечислены в обратном порядке.
Правильное использование циклов:
FOR X=0 ТО 64 0 STEP 10 FOR Y=0 TO 350 STEP 10 Rem Тело цикла NEXT Y NEXT X
Неправильное применение циклов:
FOR X=0 TO 640 STEP 10 FOR Y=0 TO 350 STEP 10 Rem Тело цикла NEXT X NEXT Y
Кроме того, в окончании вложенных циклов можно указывать только один оператор next с перечислением параметров, например:
NEXT Y, X
Приступим к упражнениям.
200. Напишите программу, заполняющую экран лоскутным ковром. Лоскутки должны быть плотно прилегающими друг к другу разноцветными квадратиками со стороной 10 (рис. 1.58).
Рис. 1.58. Лоскутный ковер
201. Заполните экран светофорными кругами (рис. 1.59). Самые большие круги красные, средние – желтые, маленькие – зеленые.
Рис. 1.59. Светофорные круги