Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Топ:
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Интересное:
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Поставим перед собой задачу, получить на экране следующую картину: два кружка радиусами R1 и R2 и цветами с1 и с2 движутся навстречу друг другу. В точке соприкосновения на их месте вырастает круг радиусом R1+R2 и цветом кружка большего радиуса.
Начальное положение: Результат:
![]() | ![]() |
Сложно подсчитать количество шагов до столкновения, поэтому и затруднительно будет использовать цикл с параметром для решения данной задачи.
Из условий задачи можно определить, что координата по вертикали остается неизменной. Пусть (Х1,Y) и (Х2,Y) – координаты центров заданных кружков.
Координаты по горизонтальной оси будут изменяться в противоположных направлениях (Х1 от R1, Х2 от 639-R2 до столкновения). В какой точке произойдет встреча трудно подсчитать, но можно определить условие, при котором они встретятся.
Из рисунка видно, что разница между центрами кружков должна быть равна сумме радиусов (Х2-Х1=R1+R2). Значит, кружки будут двигаться, пока выполняется условие Х2-Х1>R1+R2.
Когда известно условие, при котором необходимо повторять определенную серию действий, используют цикл с предусловием.
Формат:
WHILE условие работы цикла
тело цикла
WEND
WHILE, WEND – служебные слова;
Условие – строится по тому же принципу, что и в условном операторе, оно будет проверяться перед каждым шагом работы цикла. Если оно заведомо ложно, то и цикл не выполнится ни разу.
Тело цикла – серия операторов, которая будет повторяться, пока условие работы не будет нарушено. В теле цикла обязательно должны быть операторы, выполнение которых влияет на изменение истинности условия, иначе цикл не остановится (произойдет зацикливание).
Дословно конструкцию можно прочитать так: Пока условие истинно, выполняй тело цикла.
Вернемся к заданию. Подведем итоги.
Данные величины:
R1 – радиус первого кружка; с1 – цвет первого кружка;
R2 – радиус второго кружка; с2 – цвет второго кружка;
Y – высота движения кружков;
Решение:
Х1=R1 – начало движения первого кружка;
X2=639-R2 – начало движения второго кружка;
X2-X1>R1+R2 – условие движения;
С каждым шагом цикла при истинном условии, выполняются следующие действия:
1. изображаются кружки с центрами (Х1,Y) и (Х2,Y), радиусами R1 и R2, соответственно, и цветами с1 и с2, соответственно;
2. задерживаем изображение;
3. стираем;
4. Х1 увеличивается на шаг (возьмем шаг равный 1 пикселю);
5. Х2 уменьшается на аналогичный шаг;
После выхода из цикла, координаты центра нового шара (Х1+R1, Y). Цвет определим с помощью условного оператора, сравнив с1 и с2.
Программа:
CLS
PRINT “введите высоту движения, радиусы кружков и их цвета”
INPUT Y, R1, R2, C1, C2
X1=R1
X2=639-R2
SCREEN 12
WHILE X2-X1>R2+R1
CIRCLE(X1, Y), R1, C1
PAINT(X1, Y), C1, C1
CIRCLE(X2, Y), R2, C2
PAINT(X2, Y), C2, C2
FOR W=1 TO 1000
NEXT W
LINE (X1-R1, Y-R1)-(X1+R1, Y+R1), 0, BF
LINE (X2-R2, Y-R2)-(X2+R2, Y+R2), 0, BF
X1=X1+1
X2=X2-1
WEND
X=X1+R
R=R1+R2
IF R1>R2 THEN C=C1 ELSE C=C2
CIRCLE(X, Y), R, C
PAINT(X, Y), C, C
END
|
|
|
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!