Мегаобучалка Главная | О нас | Обратная связь  


Вложенные циклы – «Небоскреб»




Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Мы видим, что ввод в программу переменных величин вместо чисел делает программу более гибкой и способной к развитию. Попробуем в следующей программе использовать переменные пошире.

Задача. Нарисовать небоскреб (см. Рис. 10.4) с заданным числом этажей и подъездов (условимся: один столбец окон – один подъезд).

Рис. 10.4

Начнем с малого – пусть нужно нарисовать одно единственное окно:

Фрагмент 1

Ширина = 5 'Ширина окна

Высота = 10 'Высота окна

y = 30 'Вертикальная координата окна

x = 20 'Горизонтальная координата окна

Граф.DrawRectangle(Pens.Black, x, y, Ширина, Высота)

Пусть этот фрагмент рисует левое верхнее окно небоскреба.

Рисуем этаж. Попробуем заставить компьютер нарисовать верхний этаж. Кстати, мы с вами ведь уже рисовали «квадратную трубу» в 8.5? Это то же самое.

Замечаем, что здесь нам нужно решить несколько элементарных задач на рисование окна, первую из которых решает фрагмент 1. Все задачи очень похожи и различаются лишь значением координаты x. Таким образом, для решения каждой из этих задач подошла бы последняя строчка фрагмента 1, если бы в ней x равнялся не 20, а нужному числу. В данном случае идеально подходит оператор For:



Фрагмент 2

Зазор_х = 4 'Зазор между окнами на этаже

Ширина = 5 : Высота = 10

П = InputBox("Введите количество подъездов")

y = 30

x = 20

For j = 1 To П

Граф.DrawRectangle(Pens.Black, x, y, Ширина, Высота)

x = x + Ширина + Зазор_х 'Вычисляем горизонтальную координату следующего окна

Next

 

Рисуем весь небоскреб. Следующая ступень усложнения – последняя – нарисовать все этажи небоскреба. Для этого 5 нижних строчек фрагмента 2 должны быть выполнены заданное число раз, каждый раз – с новым значением y. Чтобы этого достичь, «обнимем» эти строчки оператором For:

Программа

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Зазор_х = 4

Зазор_у = 6 'Зазор между окнами соседних этажей

Ширина = 5 : Высота = 10

Э = InputBox("Введите количество этажей")

П = InputBox("Введите количество подъездов")

y = 30

For i = 1 To Э

x = 20

For j = 1 To П

Граф.DrawRectangle(Pens.Black, x, y, Ширина, Высота)

x = x + Ширина + Зазор_х

Next j

y = y + Высота + Зазор_у 'Вычисляем вертикальную координату следующего окна

Next i

Граф.DrawRectangle(Pens.Black, 8, 15, x, y) 'Рисуем контур небоскреба

End Sub

 

Задание 55.

«Ковер» (Рис. 10.5).

Рис. 10.5

Ковер сделан из пересекающихся окружностей. Если центры соседних окружностей отстоят друг от друга на одинаковое расстояние как по горизонтали, так и по вертикали, и если удачно подобраны размеры, то ковер у вас получится красивым и с аккуратными краями. Дополнение А: Если ковер получился, сделайте, чтобы у него был вырезан правый верхний угол. Дополнение Б: Если и это получилось, сделайте, чтобы у него был вырезан вдобавок и квадрат посередине.

Задание 56.

«Шахматная доска». Нарисуйте шахматную доску (Рис. 10.6).

Рис. 10.6

Указание: Здесь основные трудности возникнут при раскраске клеток в шахматном порядке. У Волчёнкова (См. Список литературы) я встретил следующую идею относительно того, как закрашивать клетки: Те клетки, у которых сумма номеров строки и столбца четная, закрашивать одним цветом, остальные – другим.

Задание 57.

«Таблица умножения». Нарисовать на форме таблицу умножения, как на Рис. 10.3.




Читайте также:
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...



©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (414)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)
Поможем в написании
> Курсовые, контрольные, дипломные и другие работы со скидкой до 25%
3 569 лучших специалисов, готовы оказать помощь 24/7