KnigkinDom.org» » »📕 Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»

Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»

Книгу Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория» читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

1 ... 164 165 166 167 168 169 170 171 172 ... 192
Перейти на страницу:

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
от запуска к запуску набор значений случайной величины менялся (а значит и созвездия), употребите разик до использования функции Rnd процедуру Randomize.

Задание 79: "Звезды в окне". Звездное небо в пределах прямоугольника.

Задание 80: "Дождь в луже". Заполните форму окружностями или эллипсами радиуса 200 в случайных местах.

Задание 81: "Мыльные пузыри". То же самое случайных радиусов и цветов.

Задание 82: "Сноп света в глаза". То есть пучок лучей, выходящих из одной точки. Реализуется множеством случайных разноцветных отрезков прямых, причем одна точка всех отрезков не случайна, а находится в центре формы.

Задание 83: "Стог сена". Множество случайных разноцветных отрезков прямых преимущественно желтоватых оттенков, причем одна точка любого отрезка находится в случайной точке левой трети стога, другая — в случайной точке правой. Размер стога — 6000 на 6000. Используйте функцию RGB со случайными аргументами.

Задание 84: "Атака абстракциониста". На экране бесконечно рисуется большое количество случайных разноцветных залитых прямоугольников или эллипсов.

Совет: Если ваш компьютер быстрый, то прямоугольники или эллипсы будут сменять друг друга с огромной скоростью, что может вам не понравиться. Чтобы замедлить работу компьютера, обычно используют таймер. Но поскольку вы с ним не знакомы, вставьте для замедления внутрь цикла оператор, который, ничего не изменяя на экране, будет выполняться достаточно долго. Обычно для этих целей используют "пустой цикл":

For j = 1 То 1000000: Next

Пока компьютер досчитает до миллиона, пройдет некая значительная доля секунды.

Задание 85: "Летающие тарелки в космосе". Они получатся, если по нажатии одной кнопки вы будете добавлять на форму очередную порцию звезд, а по нажатии другой — очередную летающую тарелку из задачи 68, но случайного размера и в случайном месте, что нелегко. Подсказка без пояснений: При рисовании тарелки не используйте Rnd внутри цикла, все случайные значения присвойте переменным выше цикла.

ПРОЦЕДУРЫ

До сих пор мы с вами имели дело только с процедурами, задающими реакцию компьютера на те или иные события. Это процедуры типа "Что делать, если…". Настала пора познакомить вас с другими процедурами — процедурами типа "Как". Будем называть их процедурами пользователя. В этой главе я на одном примере проведу вас от процедур пользователя к процедурам с параметрами.

Зачем нужны процедуры пользователя

Задача: Вы записали на диск десяток фотографий, снятых во время каникул, и решили сделать фотоальбом. Поместили на форму десяток кнопок с названиями фотографий и один PictureBox. При нажатии на кнопку нужное фото для всеобщего обозрения загружается в PictureBox, а также печатается дата снимка.

Задача легкая, мы ее уже решали в 0. Вот программа для 4 фотографий:

Private Sub Command1_Click()

    Picture1.Picture = LoadPicture("с: tempRockies.bmp")

    Picture1.Print, "21.07.2001"

End Sub

Private Sub Command2_Click()

    Picture1.Picture = LoadPicture("c: tempPorthole.bmp")

    Picture1.Print, "28.07.2001"

End Sub

Private Sub Command3_Click()

    Picture1.Picture = LoadPicture("c: tempBalloons.bmp")

    Picture1.Print, "12.08.2001"

End Sub

Private Sub Command4_Click()

    Picture1.Picture = LoadPicture("c: tempGuitar.bmp")

    Picture1.Print, "20.07.2001"

End Sub

Хочу предупредить, что эта программа, постепенно усложняясь, пройдет через всю главу, поэтому разберитесь в ней как следует, иначе важный материал главы будет вам непонятен.

Усложним задачу: Некоторые из фотографий сняли вы, некоторые — ваш друг. Вы хотите, чтобы в знак этого на ваших фото в левом верхнем углу появлялся один значок, а на фото вашего друга другой. Ваш любимый значок такой — >

а у вашего друга такой — >

Пусть они и появляются.

Давайте значки будем рисовать при помощи методов. Ваша программа станет такой:

Private Sub Cornmandl_Click ()

    Picture1.Picture = LoadPicture("c: tempRockies.bmp")

    'Это ваше фото, рисуем значок:

    Picture1.Line (100, 100)-(300, 300), vbBlue, В

    Picture1.Line (100, 100)-(300, 300), vbBlue

    Picture1.Line (100, 300)-(300, 100), vbBlue

    Picture1.Print, "21.07.2001"

End Sub

Private Sub Command2_Click()

    Picture1.Picture = LoadPicture("c: tempPorthole.bmp")

    'Это ваше фото, рисуем значок:

    Picture1.Line (100, 100)-(300, 300), vbBlue, В

    Picture1.Line (100, 100)-(300, 300), vbBlue

    Picture1.Line (100, 300)-(300, 100), vbBlue

    Picture1.Print, "28.07.2001"

End Sub

Private Sub Command3_Click()

    Picture1.Picture = LoadPicture("c: tempBalloons.bmp")

    'Это фото вашего друга, рисуем значок:

    Picture1.Circle (200, 200), 20

    Picture1.Circle (200, 200), 70

    Picture1.Circle (200, 200), 120

    Picture1.Circle (200, 200), 170

    Picture1.Print, "12.08.2001"

End Sub

Private Sub Command4_Click()

    Picture1.Picture = LoadPicture("c: tempGuitar.bmp")

    'Это фото вашего друга, рисуем значок:

    Picture1.Circle (200, 200), 20

    Picture1.Circle (200, 200), 70

    Picture1.Circle (200, 200), 120

    Picture1.Circle (200, 200), 170

    Picture1.Print, "20.07.2001"

End Sub

Программа работает нормально, но невооруженным глазом виден ее существенный недостаток — резко возросший объем. Недостаток этот особенно будет заметен, когда число фото вырастет до десятка. Это тем более обидно, что в программе есть два повторяющихся фрагмента. Это фрагмент

'Это ваше фото, рисуем значок:

Picture1.Line (100, 100)-(300, 300), vbBlue, В

Picture1.Line (100, 100)-(300, 300), vbBlue

Picture1.Line (100, 300)-(300, 100), vbBlue

и фрагмент

'Это фото вашего друга, рисуем значок:

Picture1.Circle (200, 200), 20

Picture1.Circle (200, 200), 70

Picture1.Circle (200, 200), 120

Picture1.Circle (200, 200), 170

которые в нашей программе встретились по два раза, а когда число фото вырастет, то встретятся многократно.

В этом случае программисты всего мира поступают так. Они придумывают повторяющимся фрагментам имена, например,

Рисуем_мой_значок

и

Рисуем_значок_друга

Затем они вписывают в программу специальную процедуру для каждого фрагмента с придуманным только-что именем, после чего имеют право во всей программе вместо фрагмента писать его имя. Чтобы вам было понятно, посмотрите на получившуюся программу:

Private Sub Рисуем_мой_значок() 'Это одна специальная процедура

   Picture1.Line (100, 100)-(300, 300), vbBlue, В

   Picture1.Line (100, 100)-(300, 300), vbBlue

   Picture1.Line (100, 300)-(300, 100), vbBlue

End Sub

Private Sub Рисуем_значок_друга() 'Это другая специальная процедура

    Picture1.Circle (200, 200), 20

    Picture1.Circle (200, 200), 70

    Picture1.Circle (200, 200), 120

   

1 ... 164 165 166 167 168 169 170 171 172 ... 192
Перейти на страницу:
Отзывы - 0

Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор knigkindom.ru.


Партнер

Новые отзывы

  1. Christine Christine26 июнь 01:23 ​​​​Сначала было тежеловта читать, но потом всё изменилось, я с удовольствием прочитала, спасибо за книгу. Я прочитала весь цикл... Опасное влечение - Полина Лоранс
  2. Тамаринда Тамаринда21 июнь 12:33 Редко что-то цепляет, но тут было всё живое, жизненное, чувственное, сильное, читайте, не пожалеете о своём времени...... Хрупкая связь - Ольга Джокер
  3. Гость Марина Гость Марина20 июнь 06:08 Книга очень понравилась, хотя и длинная. Героиня сильная личность. Да и герой не подкачал. ... Странная - Татьяна Александровна Шумкова
Все комметарии
Новое в блоге