Цель: закрепление навыков работы конструкцией ветвление; закрепление навыков написания программного кода, использования элементов управления для построения формы; развитие интереса к предмету, воспитание самостоятельности
1.Разминка (повторение теоретического материала прошлых уроков)
Случалось ли вам принимать решения в зависимости от складывающейся ситуации (некоторого условия)? Приведите примеры таких ситуаций.
Общий вид ветвления. Строчная и блочная форма записи.
Условный оператор (оператор условия if)
Имеет 2 формы записи: строчную и блочную
1) Строчная
if условие Then оператор1 Else оператор2
2) блочная
if условие1 Then операторы 1
Elseif условие2 Then операторы 2
Else операторы n
End if
2.Новый материал
Рассмотрим работу двух функций
1. Функция Randomize – Rnd (х) выдает случайное число в диапазоне от 0 до х.
О случайных числах
Зачем вообще нужны случайные числа? Вы наверняка играли в "Сапёр", "Пасьянсы" и т.д. Так вот, как вы могли заметить, что мины в "Сапёре" каждый раз находятся в разных местах. Карты в "Пасьянсах" каждый раз раскладываются по иному. Иначе, ведь было бы не совсем не интересно обезвреживать минное поле, когда знаешь, где лежит мина. Вот здесь и используются случайные числа! Хотя, конечно, абсолютного случайного числа не существует :). Все они псевдослучайные, т.е. всё равно их генерация выполняется по определённому алгоритму.
Для того, чтобы в Visual Basic сгенерировать случайное число необходимо использовать функцию Rnd. Эта функция возвращает (генерирует) случайное значение в пределах [0,1).
1. Функция Rnd (х) дает случайное число в диапазоне от 0 до х.
Например:
Private Sub Command1_Click()
Text1.Text = Rnd (10) В текстовое поле выводится всегда разное число
End Sub
Для генерирования ЦЕЛОГО случайного числа, можно использовать следующую формулу:
Int(X*Rnd (10)), где X - верхняя граница диапазона.
2. Функция MsgBox (текст, опция, заголовок) - возвращает какое-либо значение, где –
Текст – сообщение для пользователя
Опция – аргумент, целое число, которое может быть представлено как сумма двух слагаемых Ор=Ор1 (определяет вид сообщения и пиктограмм)+Ор2 (определяет набор кнопок в окне сообщения)
Заголовок – заголовок появляющегося окна
Обычно функция используется как оператор, в этом случае скобки отсутствуют. Пример:
MsgBox “Деление на 0”, 48
|
Значение Ор1 |
Вид сообщения |
|
16 |
Критич.сообщение |
|
32 |
Вопрос |
|
48 |
Предупреждение |
|
64 |
Просто информация |
|
Значение Ор2 |
Кнопки окна |
|
0 |
ОК |
|
1 |
Ок, Отмена |
|
2 |
Стоп, Повтор, Пропустить |
|
3 |
Да, Нет, Отмена |
|
4 |
Да, Нет |
|
5 |
Повтор, Отмена |
Пример:
MsgBox “Деление на 0”, 48+4, “Калькулятор”
3.Задача
Напишем программу, имитирующую деятельность игрового автомата, выдающего числа случайным образом. Пусть, если выпало число 7, оно выводится в 3 текстовых окна и пользователю сообщается в диалоговом окне о выигрыше. Самостоятельно подберите текст сообщения и вид окна для системного сообщения.
Примерный вариант окна программы.

4. Выполнение работы
Private Sub Command1_Click()
x = Int(Rnd(7) * 10 - 1)
If x = 7 Then
Text1.Text = x: Text2.Text = x: Text3.Text = x:
MsgBox "Удача!", 64, "Сообщение":
Text1.Text = "": Text2.Text = "": Text3.Text = ""
End If
End Sub
Первая модификация программы:
Пусть будет не одна переменная Х на три текстовых окна, а 3 разные переменные, например Х, У, Z. Естественно, что время выполнения программы увеличится, поскольку вероятность совпадения уменьшится.
Private Sub Command1_Click()
Х = Int(Rnd(7) * 10 - 1)
У = Int(Rnd(7) * 9 - 1)
z = Int(Rnd(7) * 7 - 1)
Text1.Text = x: Text2.Text = y: Text3.Text = z:
If (x = 7) and (y=7) and (z=7) Then
MsgBox "Удача!", 64, "Сообщение":
Text1.Text = "": Text2.Text = "": Text3.Text = ""
End If
End Sub
Вторая модификация программы:
Можно не щелкать вручную по кнопке Играть. Пусть программа сама генерирует числа и при равенстве всех трех переменных остановит эту генерацию и выведет числа в текстовые окна.
Создадим на форме элемент управления Timer1. Свойство Интервал установим например 10. И всю программу перенесем в новую процедуру Private Sub Timer1_Timer().
Private Sub Timer1_Timer()
x = Int(Rnd(7) * 10 - 1)
y = Int(Rnd(7) * 10 - 1)
z = Int(Rnd(7) * 10 - 1)
Text1.Text = x: Text2.Text = x: Text3.Text = x:
If (x = 7) And (y = 7) And (z = 7) Then
MsgBox "Удача!", 64, "Сообщение":
Text1.Text = "": Text2.Text = "": Text3.Text = ""
End If
End Sub
5. Подведение итогов. Просмотр работ.



оздадим на форме элемент управления Timer1. Свойство Интервал установим например 10. И всю программу перенесем в новую процедуру Private Sub Timer1_Timer().
Использование генератора случайных чисел на примере условного оператора в среде Visual Basic (0.12 MB)

