Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика (часть 2).doc
Скачиваний:
39
Добавлен:
03.05.2015
Размер:
1.22 Mб
Скачать

Оператор Select Case

Позволяет выполнить одну из нескольких групп операторов в зависимости от значения. Синтаксис оператора следующий:

SelectCaseпроверочное выражение

[caseзначение1

[операторы1]]

[caseзначение2

[операторы]]

[caseзначениеN

[операторыN]]

[CaseElse

[операторыN1]]

EndSelect

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

Пример 3 Вывести название месяца по его номеру,Month– номер месяца.

Select Case Month

Case 1

Print "январь"

Case 2

Print "февраль"

Case 12

Print "декабрь"

Case Else

Print "Неверно определён номер месяца"

End Select

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

В качестве значения можно указывать не одно значение, а несколько, разделённых запятой, или задать диапазон (1 to3), или пользоваться относительным сравнением (Is>=10), например:

Select Case Month

Case 1, 2, 3

Print "первый квартал"

Select Case Month

Case 1 to 3

Print "первый квартал"

Пример 4

Создать приложение, позволяющее вычислить сумму вклада через год, если известна первоначальная сумма вклада. Проценты начисляются исходя из следующих условий: если первоначальная сумма вклада меньше 20000 руб, то начисляется 8%, если первоначальная сумма вклада больше 100000 руб., начисляется 15%, иначе начисляется 10%. Предусмотреть проверку вводимой пользователем первоначальной суммы вклада – она должна быть положительной.

Создадим форму для данного приложения (рис. 3.1.):

Рис. 3.1. Форма приложения "Сумма вклада через год"

Алгоритм процедуры обработки события – щелчка на кнопке Вычислить.

1) Проверка значения, введённого пользователем.

При каждом выполнении программы пользователем существует вероятность, что пользователь ошибётся и некорректно введёт данные. В нашем примере в качестве первоначальной суммы вклада пользователь должен ввести положительное число, но это не значит, что он именно так и сделает. Поэтому программист должен предусмотреть в программе проверку возможных ошибок пользователя Обычно программный код проверки ошибок занимает до 40% объёма всего приложения. Если программист не предусмотрит проверку ошибок, допускаемых пользователем при вводе, то вычисления могут оказаться бессмысленными или может возникнуть ошибка в процессе вычислений (например, попытка деления на 0, извлечения корня из отрицательного числа).

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

Проверка будет состоять в следующем:

  • Преобразовать значение тестового поля в числовое;

  • Если поле содержит ноль или меньше, то:

      • Выдать пользователю сообщение

      • После того, как пользователь закроет окно сообщения, установить фокус на элементе управления, содержащем некорректные данные, чтобы пользователь мог ввести правильное значение

2) Если значение введено корректно, то вычислить сумму вклада через год в соответствии с заданными правилами. Вычисленное значение поместить в соответствующее поле в форме. Алгоритм этого вычисления:

Рис. 3.2. Алгоритм вычисления суммы вклада

Текст процедуры представлен ниже. Для удобства пояснений в качестве комментариев указаны номера строк.

Private Sub Комманда1_Click() ' 1

Dim s As Single ' 2

If Val(Sum.Text) <= 0 Then ' 3

MsgBox "Введите значение больше нуля", vbCritical ' 4

Sum.SetFocus ' 5

Exit Sub ' 6

Else ' 7

s = Sum ' 8

If s < 20000 Then ' 9

s = s + 0.08 * s ' 10

ElseIf s > 100000 Then ' 11

s = s + s * 0.15 ' 12

Else ' 13

s = s + 0.1 * s ' 13

End If ' 14

NewSum.Text = s ' 15

End If ' 16

End Sub ' 17

В строке 3 значение текстового поля Sum преобразуется в число (для этого используется функция Val) и сравнивается с 0. Если пользователь ввёл отрицательное или нулевое значение, то вызывается процедура MsgBox, которая выводит сообщение пользователю. Далее, в строке 5 фокус передаётся этому же текстовому полю, чтобы пользователь мог ввести правильное значение (для текстового поля Sum вызывается метод SetFocus) и выполняется выход из процедуры. Если же условие в строке 3 не выполняется, т. е. пользователь ввёл положительное значение, то выполняются вычисления в соответствии с алгоритмом начисления процентов (сторки с 8 по 16). .