Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Понятно о Visual Basic.NET. Самоучитель.Ч2.2005...docx
Скачиваний:
79
Добавлен:
25.11.2019
Размер:
4.02 Mб
Скачать
      1. Еще примеры и задания

Разберите еще несколько примеров работы оператора If:

ФРАГМЕНТ ПРОГРАММЫ

ПЕЧАТЬ

a=10

If a>2 Then Debug.WriteLine("!!!") Else Debug.WriteLine("!")

!!!

a=4

If a>5 Then a=a+10 Else a=a-1

Debug.WriteLine(a)

3

s=6

If s-8<>0 Then s=2*s

Debug.WriteLine(s)

12

s=6

If s<0 Then s=2*s

s=s+1

Debug.WriteLine(s)

7

Определить без компьютера, какие 3 числа напечатает следующий фрагмент:

k = 20 : k = k + 10 : If k + 10 <> 30 Then k = 8 Else k = k - 1

Debug.WriteLine(k)

k = 20 : k = k + 10 : If k + 10 = 30 Then k = 8 Else k = k - 1

Debug.WriteLine(k)

p = 1 : If p > 0 Then p = p + 5

If p > 6 Then p = p + 1

Debug.WriteLine(p)

В компьютер вводятся два числа. Если первое больше второго, то напечатать их сумму, иначе – произведение. После этого компьютер должен напечатать текст ЗАДАЧА РЕШЕНА.

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

В Задание 16. вам будет предложено определить, возможен ли треугольник из этих отрезков, а затем в Задание 20. – нарисовать треугольник по трем сторонам, если он возможен.

Дракон каждый год отращивает по три головы, но после того, как ему исполнится 100 лет – только по две. Сколько голов и глаз у дракона, которому N лет?

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

If TextBox1.Visible = True Then MsgBox("Видимо") Else MsgBox("Невидимо")

Таким образом, мы расширили понятие условия в операторе If, включив в него сравнение свойства с его значениями. Вы можете писать, например, так:

If TextBox1.Width < 50 Then …

Не все свойства позволяют делать такие сравнения.

Если кнопка расположена на форме с вашей точки зрения слишком высоко, пусть при нажатии на нее она опустится на 20 пикселей.

    1. Случайные величины

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

      1. Функции Rnd и Randomize

Запустите такую программу:

Dim p As Double

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

p = Rnd()

Debug.WriteLine(p)

End Sub

Вот результат:

0,705547511577606

Это случайное число из диапазона от 0 до 1. Вырабатывает это число функция Rnd.

Щелкнем несколько раз по кнопке. Получим серию случайных чисел:

0,705547511577606

0,533424019813538

0,579518616199493

0,289562463760376

0,301948010921478

Завершим работу программы и снова ее запустим. Пощелкаем по кнопке. Получим ту же серию:

0,705547511577606

0,533424019813538

0,579518616199493

0,289562463760376

0,301948010921478

Выходит, что числа хоть и случайные, но после каждого запуска одинаковые. Не очень-то, получается, случайные. Как сделать их разными от запуска к запуску? Добавим кнопку и к ней процедуру с оператором Randomize:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Randomize()

End Sub

После выполнения оператора Randomize числа будут и случайными и разными от запуска к запуску.

Как получить случайное число из диапазона от 0 до 20?

Так – p = 20 * Rnd.

А из диапазона от 6 до 7?

Так – p = 6 + Rnd.

А из диапазона от 200 до 210?

Так – p = 200 + 10 * Rnd.

Проверьте.

Как получить случайное целое число из диапазона от 200 до 210? Так –

p = Fix (200 + 11 * Rnd)

Функция Fix «отрезает» дробную часть у числа. Подумайте, почему я написал 11, а не 10. Если не можете додуматься, вычисляйте эту формулу по этапам:

s = 11 * Rnd()

t = 200 + s

p = Fix(t)

Debug.WriteLine(s)

Debug.WriteLine(t)

Debug.WriteLine(p)

Запуская этот фрагмент, наблюдайте за значениями s, t и p. Дождитесь, когда s перевалит за 10. Вы сразу все поймете. Если бы я в формуле вместо 11 написал 10, число p равное 210 никогда бы нам не встретилось.