Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по VBasic.doc
Скачиваний:
11
Добавлен:
17.09.2019
Размер:
1.16 Mб
Скачать

Функция rnd

В некоторых программах, например, в контрольных, а чаще в играх требуется запрограммировать вычисление вероятности какого-нибудь события. События могут произойти или не произойти. В теории вероятности такие события называются случайными. Вероятностью случайного события называется измеренная в процентах (или долях единицы) возможность совершения этого события. Кроме того, очень часто требуется задать произвольное число, установить случайную последовательность каких-либо действий, то есть вызвать произвольное, случайное число.

Для этой цели в VB существует специальная встроенная функция Rnd, значения которой – число, случайным образом выбираемое из интервала между 0 и 1. Число, на самом деле берется не случайно, а из очень длинной последовательности так называемых псевдослучайных чисел. И поэтому перед использованием Rnd необходимо случайным образом определить первоначальное место в этой последовательности.

Для этой цели используется оператор Randomize z, где z – произвольное число. Чтобы действительно все было случайно, необходимо, чтобы z при каждом запуске было разным. В VB для этого удобно пользоваться функцией Timer (встроенный счетчик времени). Она возвращает текущее значение времени с точностью до 0,01 сек. А по умолчанию, если z отсутствует, VB все равно считает его равным значению Timer.

Если надо получить случайное число в интервале от 1 до 10, необходимы следующие операторы:

Randomize

N = 1 + Int(Rnd*10)

Rnd возвращает число от 0 до 1, Int возвращает целую часть числа.

Попробуйте сами написать операторы, возвращающие случайные числа в интервалах 10-20, 0-7, 1-99, (-10) – (+10).

Общая формула для интервала N1-N2 выглядит так

N=N1 + Int(Rnd*(N2-N1+1)).

Задание1. Игра «Угадайка». На форме 2 кнопки и Текстовое Окно. По одной кнопке компьютер загадывает случайное число. Играющий вводит число в Текстовое Окно и с помощью второй кнопки проверяет правильность. Выдаются сообщения «угадал», «не угадал». Можно усложнить: выдавать сообщения с указанием – число больше или меньше задуманного.

Повторения и циклы.

Повторение – многократное повторение одного или нескольких предписаний алгоритма.

Цикл – оператор языка программирования, с помощью которого это повторение будет выполнять компьютер.

Циклы – это многострочные операторы двух видов: циклы со счетчиком и циклы с условием.

В 1 случае используется особая переменная, которая называется счетчиком. Ей присваивается начальное значение, и ее значение изменяется каждый раз при повторении. И когда она достигает конечного значения, цикл прекращается.

Во 2 случае цикл продолжается до тех пор, пока выполняется некоторое условное выражение.

Цикл со счетчиком. FOR – NEXT

Для организации определенного числа повторений используется многострочный оператор FOR-NEXT.

For Имя = Нач.Значение To Кон.Значение [ Step ЗначениеШага]

Тело цикла(повторяющиеся операторы)

Next [Имя]

Имя – имя переменной, счетчика цикла. Эта переменная меняется от начального до конечного значения, каждый раз на величину шага. Если шаг отсутствует, по умолчанию считается, что он = 1.

Работа оператора выполняется в следующем порядке:

    1. Задается начальное значение параметра цикла.

    2. Проверяется больше или нет параметр цикла, чем конечное значение. Если больше, то происходит выход из цикла.

    3. Если параметр цикла меньше конечного, то выполняются последовательно все операторы тела.

    4. При выполнении Next (следующий) к параметру цикла прибавляется значение шага.

    5. Переход ко второму пункту и повторение пунктов 2-5.

Цикл повторяется до тех пор, пока счетчик не примет значение больше конечного. Если изначально значение счетчика больше конечного, то цикл не будет выполнен ни разу.

Задание2. По кнопке задаются и печатаются на форме 20 случайных чисел в интервале 0 – 100. Можно интервал чисел задать с помощью Окон Ввода.

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

З адание3. Нарисуйте на форме разноцветные мыльные пузыри с разными радиусами. Координаты центра и радиус задайте случайным образом.

S=0

О

S=S+A

дна из наиболее частых задач, решаемых с помощью циклического оператора – это подсчет суммы чисел.

Д

A

о цикла переменная S обнуляется. S = 0. Каждый раз в цикле к старому значению суммы прибавляется новое число. S = S + A.

Алгоритм решения этой задачи можно изобразить

д анной схемой алгоритма.

I =I+1

З

I>10

нет

да

адание4
. Вводятся в цикле 10 отметок студента и подсчитывается средний балл. Использовать Окно Ввода и Окно Сообщений

S

В циклических операторах предусмотрена возможность для экстренного выхода из цикла. Оператор Next For позволяет выйти из цикла For до его завершения. Тем самым программа сможет среагировать на определенное событие, не выполняя цикл заданное количество раз. Операторы Exit For обычно используются с операторами IF. If условие Then Exit For. Эта конструкция очень полезна для обнаружения особых ситуаций в ходе выполнения цикла.

Задание5. Дополните предыдущее задание. Если очередная отметка будет = 2, то подсчет средней отметки кончается и выводится сообщение "Неуспевающий".

Домашнее задание:

1.Сделайте тестирующую программу с помощью цикла. Например, проверка знания таблицы умножения.

2. Оформите Задание1 как игрушку для детей. Примените циклические алгоритмы.

Контрольные вопросы:

1. Как задать случайное число в заданном интервале, целое и десятичное, положительное и отрицательное?

2. Что такое цикл?

3. Какие бывают операторы цикла?

4. Синтаксис и алгоритм выполнения цикла со счетчиком?