Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Топ:
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Интересное:
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Дисциплины:
2021-06-23 | 29 |
5.00
из
|
Заказать работу |
|
|
Рассмотим фрагмент программы:
INPUT R
SCREEN 12
FOR X=R TO 639-R STEP 2*R
FOR Y=R TO 479-R STEP 2*R
|
|
PAINT (X,Y),4,14
SLEEP 1
NEXT Y
SLEEP 1
NEXT X
END
В этом фрагменте фигурируют два цикла с параметром. Фигурными скобками отмечены их тела. В тело цикла по параметру Х входит цикл по параметру Y.
Цикл, который входит в тело другого цикла, называется вложенным.
В тело цикла с параметром Y входят три оператора:
1. CIRCLE(X,Y),R,14
2. PAINT (X,Y),4,14
3. SLEEP 1
А в тело цикла с параметром Х входят два оператора:
1. FOR Y=R TO 479-R STEP 2*R
CIRCLE(X,Y),R,14
PAINT (X,Y),4,14
SLEEP 1
NEXT Y
2. SLEEP 1
При работе цикла с параметром Y, будет происходить рисование кружков (с перерывом в 1 секунду). Кружки будут выстраиваться в колонну сверху вниз, во всю высоту экрана. Так как, автоматически будет изменяться переменная Y с шагом 2*R.
Но данный цикл вложен в цикл по параметру Х. Значит, таких колонн будет нарисовано столько, сколько кружков можно уместить по горизонтали. Т.е., система нарисует одну колонну и заснет на секунду, затем нарисует вторую колонну и опять заснет, и т.д.
В итоге, весь экран будет покрыт кружками, как узором.
Задание:
Получить на экране следующий узор:
Каждый ромб задается с помощью величины а.
Решение:
Здесь элементом узора является не круг, а ромб. Фрагмент программы для его рисования, таков:
LINE(X-a,Y)-(X,Y-a),1
LINE -(X+a,Y),1
LINE- (X,Y+a),1
LINE –(X-a,Y),1
PAINT(X,Y),1,1
Достаточно в предыдущей программе внести эту замену и узор готов. Оператор SLEEP писать не обязательно, т.к. в задании не требовалось выводить узор постепенно.
Программа:
CLS
PRINT “ввести размер ромба”
INPUT a
SCREEN 12
FOR X=a TO 639-a STEP 2*a
|
FOR Y=a TO 479-a STEP 2*a
LINE(X-a,Y)-(X,Y-a),1
LINE -(X+a,Y),1
LINE- (X,Y+a),1
LINE –(X-a,Y),1
PAINT(X,Y),1,1
NEXT Y
NEXT X
END
Задание:
Получить на экране следующий узор:
Решение:
Весь узор получен из чередования двух маленьких фрагментов: №1. зеленого квадрата и желтого кружка на нем; №2. желтого квадрата и зеленого кружка на нем. Если полагать, что центр окружности будет располагаться в точке (х,у), окружность будет иметь радиус R, а сторона квадрата, соответственно, 2*R, то эти фрагменты можно получить выполняя следующие серии операторов:
1. LINE(X-R,Y-R)-(X+R,Y+R),2,BF
CIRCLE(X,Y),R,14
PAINT(X,Y),14,14
2. LINE(X-R,Y-R)-(X+R,Y+R),14,BF
CIRCLE(X,Y),R,2
PAINT(X,Y),2,2
Будем строить узор вертикальными колонками. При построении одной колонки, координата Х изменяться не будет, а координата Y будет изменяться от R (центр первого фрагмента узора в колонке) до 479-R (центр последнего фрагмента узора в колонке) с шагом 2*R. Рассмотрим внимательно узор, и выясним от чего зависит рисование того или иного фрагмента.
Колонки, стоящие на первом, третьем, а, в общем, на нечетных местах – идентичны, и отличаются от колонок, стоящих на четных местах порядком следования фрагментов.
Рассмотрим нечетные колонки. В них на нечетных местах стоят фрагменты №1, а на четных – фрагменты №2.
В четных колонках – наоборот. На нечетных местах стоят фрагменты №2, а на четных – фрагменты №1.
В этой задаче не следует выбирать в качестве параметров циклов переменные, отвечающие за координаты. Пусть параметры циклов отвечают, за положение фрагмента в сетке узора. I – номер колонки, а J- номер клеточки в этой колонке.
1 | 2 | 3 | 4 | ……… | |
1 |
| ||||
2 | |||||
3 | |||||
. . . . |
Если номера строчки и столбика одинаковой четности, то рисуется фрагмент №1, а иначе - №2.
Количество клеточек в узоре зависит от величины радиуса. По горизонтали их 640\(2*R), а по вертикали 480\(2*R).
Тогда, колонку с номером I можно нарисовать, реализуя следующий фрагмент программы:
FOR J=1 TO 480\(2*R)
IF ((I mod 2<>0) and (J mod 2<>0)) or ((I mod 2=0) and (J mod 2=0)) THEN
LINE(X-R,Y-R)-(X+R,Y+R),2,BF
|
CIRCLE(X,Y),R,14
PAINT(X,Y),14,14
ELSE
LINE(X-R,Y-R)-(X+R,Y+R),14,BF
CIRCLE(X,Y),R,2
PAINT(X,Y),2,2
END IF
Y=Y+2*R
NEXT J
Так как таких колонок несколько, то этот фрагмент программы нужно повторить
640\(2*R) раз, одновременно изменяя координату по горизонтали, т.е. Х.
Программа:
СLS
PRINT “введите радиус”
INPUT R
SCREEN 12
X=R
Y=R
FOR I=1 TO 640\(2*R)
FOR J=1 TO 480\(2*R)
IF ((I mod 2<>0) and (J mod 2<>0)) or ((I mod 2=0) and (J mod 2=0)) THEN
LINE(X-R,Y-R)-(X+R,Y+R),2,BF
CIRCLE(X,Y),R,14
PAINT(X,Y),14,14
ELSE
LINE(X-R,Y-R)-(X+R,Y+R),14,BF
CIRCLE(X,Y),R,2
PAINT(X,Y),2,2
END IF
Y=Y+2*R
NEXT J
X=X+2*R
NEXT I
END
Задания для самостоятельного решения:
1. Придумать и получить на экране узор.
2. Нарисовать в центре экрана квадрат со стороной 400 пикселей и заставить кружок радиуса R (R<50) двигаться по его траектории. Кружок должен обежать вдоль сторон квадрата 10 раз по часовой стрелке.
|
|
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!