Проект «Звездное небо»
Создайте новый проект с кнопкой. Покрасьте форму в цвет ночного неба. Пусть по щелчку по кнопке на форме рисуется маленькая белая окружность, такая маленькая, что неотличима от точки: Граф.DrawEllipse(Pens.White, 100, 100, 3, 3) Поставим задачу нарисовать такую звездочку в случайном месте формы. Посмотрим в окне свойств, чему равны размеры формы. Пусть они равны 500 по горизонтали и 400 по вертикали. Тогда дело решает следующий оператор: Граф.DrawEllipse(Pens.White, 500 * Rnd(), 400 * Rnd(), 3, 3) Пощелкайте по кнопке. С каждым щелчком на небе будет зажигаться новая звездочка (Рис. 7.1). Рис. 7.1 Задание 10. Создайте проект «Звездное небо в окне» (см. Рис. 7.2). Рис. 7.2 Задание 11. «Ловля кузнечика или измеритель шустрости». Создайте проект с большой формой и одной очень маленькой кнопкой. При нажатии на кнопку она должна прыгать в случайное место формы. Вы щелкнули по кнопке – она прыгнула, вы снова поскорее щелкнули – она снова прыгнула, и так далее. Старайтесь щелкать как можно чаще. Можете засечь, сколько раз вам удалось щелкнуть за 1 минуту. Побеждает тот, у кого за 1 минуту кнопка прыгнет наибольшее число раз. (В дальнейшем вы сможете научить компьютер, чтобы он сам засекал время и сам подсчитывал количество нажатий. Кстати, попробуйте опередить книгу и сами организуйте подсчет. В этом вам поможет оператор вида k=k+1.) Указание: Чтобы кнопка прыгнула в случайное место формы, вам достаточно задать случайные значения двум свойствам кнопки - Left и Top. При этом вы должны добиться, чтобы кнопка не «упрыгивала» с формы. Подсказка: Чтобы можно было играть на форме любых размеров, вам может понадобиться такая, например, случайная величина – Me.Width * Rnd. Только имейте в виду, что размеры формы больше размеров ее рабочего пространства на размеры заголовка и бордюров. Поэтому указанную формулу надо немного подкорректировать в сторону уменьшения. Задание 12. «Угадай число» или «Экстрасенс ли вы». Это ваша первая простейшая игра с компьютером. Компьютер загадывает число – 0 или 1. Ваше дело – отгадать. А дело компьютера – сказать «Угадал» или «Не угадал». Некоторые экстрасенсы утверждают, что благодаря сверхчувственному контакту с компьютером они могут из 100 раз угадать 80. Программа готова? Настройтесь на сверхчувственный контакт! Пуск! Указание: Здесь вам нужно получить целое число из диапазона от 0 до 1. Получается оно абсолютно по той же методе, что и целое число из диапазона от 200 до 210. Многострочный If Многострочный If гораздо мощнее однострочного. Разбираем многострочный If на примерах Вспомним недавнюю задачу: Если a не равно 4, выполнить операторы b=3 и Debug.WriteLine(b), а в противном случае - операторы b=0, a=b+5 и с=0. Вот однострочный оператор If, решающий эту задачу: Ifa <> 4 Thenb = 3 : Debug.WriteLine(b) Else b = 0 : a = b + 5 : c = 0 Однако, часто количество операторов после Then и Else бывает гораздо большим, да и сами эти операторы бывают гораздо более сложными и длинными. В этом случае строка становится неудобочитаемой, да и вообще не умещается на ширине экрана. Для таких случаев создан многострочный (или блочный) оператор If. Вот как решается наша задача с его помощью: If a <> 4 Then b = 3 Debug.WriteLine(b) Else b = 0 a = b + 5 c = 0 End If Конструкция End If означает просто, что в этом месте оператор If заканчивается. Часть Else может и отсутствовать. Например, If a <> 4 Then b = 3 Debug.WriteLine(b) End If Самое замечательное в блочном If то, что здесь можно одно за другим проверять несколько условий. Проиллюстрирую на примерах. Задача: В компьютер вводится число a. Компьютер должен: · Если a<0, сказать «Число отрицательно». · Если a=0, сказать «Вы ввели нуль». · Если a>100, сказать «Число большое». · В остальных случаях компьютер ничего не должен говорить, а только вычислить и напечатать его квадрат. В любом случае после всего этого компьютер должен сказать «До свидания». Вот программа: Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click a = InputBox("Введите число") If a < 0 Then MsgBox("Число отрицательно") ElseIf a = 0 Then MsgBox("Вы ввели нуль") ElseIf a > 100 Then MsgBox("Число большое") Else Debug.WriteLine(a ^ 2) End If MsgBox("До свидания!") End Sub А вот перевод приведенного оператора If на русский: ЕСЛИ a < 0 ТО MsgBox("Число отрицательно") ИНАЧЕ ЕСЛИ a = 0 ТО MsgBox("Вы ввели нуль") ИНАЧЕ ЕСЛИ a > 100 ТО MsgBox("Число большое") ИНАЧЕ Debug.WriteLine(a ^ 2) КОНЕЦ ОПЕРАТОРА ElseIf переводят так – «иначе если». Многострочный If выполняется так: Сначала проверяется первое условие (a < 0). Если оно не выполняется, то VB переходит к проверке второго условия(a = 0), третьего и так далее. Наткнувшись наконец на условие, которое выполняется, VB выполняет операторы, стоящие после его Then и на этом заканчивает работу, даже если ниже есть условия, которые тоже выполняются. Если не выполняется ни одно из условий, VB выполняет операторы, стоящие за Else. Выполнив многострочный If, компьютер переходит к выполнению следующего оператора (у нас это MsgBox("До свидания!")). Проверьте работу этого оператора в пошаговом режиме 4 раза: для отрицательного, нулевого, положительного и большого положительного значения a. Это нужно для того, чтобы убедиться, что каждая из 4 ветвей оператора работает нормально. Обратите внимание, что вам нигде не пришлось объяснять компьютеру, что «в остальных случаях» означает на самом деле «между 0 и 100». Все получилось само собой.
Популярное: Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (750)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |