Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
II .5. Оператор цикла с параметром. Копирование объектов
Рассмотрим решение задачи. Получим на экране изображение зигзага, как представлено на рисунке ниже.
Все зубцы зигзага абсолютно одинаковы и имеют высоту и ширину, равную h. Начало зигзага определено в точке (0, 240). Пусть с – цвет зигзага. Для рисования одного зубца может быть использован следующий фрагмент программы: x=0 y=240 LINE(x, y)-(x+h\2, y-h), c LINE - ( x + h, y ), c Для рисования следующего зубца достаточно сдвинуть начальную точку по горизонтальной оси на расстояние h (х=х+h) и повторить те же команды (выделенные жирным шрифтом). Рассчитаем количество повторений: длина экрана 480 пикселей, ширина одного зубца h пикселей, следовательно, количество зубцов 480\h штук. Вывод: для рисования зигзага потребуется 480\h раз повторить команды: LINE(x, y)-(x+h\2, y-h), c LINE -(x+h, y), c x=x+h Когда известно, сколько раз необходимо повторить серию операторов, используют оператор цикла с параметром. Формат: FOR I=a TO b STEP h < тело цикла > NEXT I
FOR, TO, STEP, NEXT – служебные слова. I, a, b и h – переменные, которые могут иметь и другие имена, но содержать должны только целые значения. Тело цикла – это операторы, которые будут повторяться. Если величина шага равна 1, то фрагмент команды STEP h можно не писать.
Переменную I, в данном контексте, называют параметром цикла, так как от того, сколько значений она примет, столько раз и повторится тело цикла. Значение параметра цикла нельзя изменять в теле цикла, иначе будет нарушена правильная работа оператора! Дословно команду можно перевести так: для каждого значения переменной I от числа a до числа b с шагом h делай операторы. Программа: CLS PRINT “введи высоту зигзага и цвет” INPUT h, c SCREEN 12 x=0 y=240 FOR I=1 TO 480\h LINE(x, y)-(x+h\2, y-h), c LINE -(x+h, y), c x=x+h NEXT I END Эту же программу можно написать иначе, взяв в качестве параметра переменную х, и взяв величину шага за h. CLS PRINT “введи высоту зигзага и цвет” INPUT h, c SCREEN 12 y=240 FOR x=0 TO 480 STEP h LINE(x, y)-(x+h\2, y-h), c LINE -(x+h, y), c NEXT x END Обратите внимание: - в первом варианте программы, параметр цикла отвечает за количество повторов и через каждый повтор его значение увеличивается на 1, при этом координата х увеличивается на величину h, чтобы начать рисование очередного зубца (для этого используется оператор x=x+h); - во втором варианте программы, параметр цикла отвечает не только за количество повторов, но и за координату начала рисования очередного зубца (через каждый повтор его значение увеличивается на h автоматически). Задания для самостоятельного решения: 1. Получить на экране цепочку из окружностей, касающихся друг друга. В результате экран принимает следующий вид: Радиус окружности вводится с клавиатуры. Окружностей должно получиться столько, сколько необходимо, чтобы опоясать весь экран от края до края. Окружности должны быть закрашены. 2. Получить цепочку ромбов. Ромбы расположены по центру, их количество зависит от размера. Ромбы раскрашенные.
3. Придумать свой вариант узора (не простой, интересный) и опоясать аналогично второй задаче им экран.
4. " Засадить грядку цветами".
|
Последнее изменение этой страницы: 2019-03-30; Просмотров: 68; Нарушение авторского права страницы