Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






End Select






Сначала вычисляется «выражение» и в соответствии с тем какое она принимает значение (значение1, значение2, и т.д.), выполняются соответствующие операторы. Если ни одно из указанных значений не реализуется – выполняются операторы, следующие за Case Else.

В качестве значения для блока Case можно указывать не только одно значение, но и несколько, разделённых запятой, например, (2, 5). Можно задать целую область (2 To 8), или воспользоваться относительным сравнением (Is > = 9). Если условию соответствует несколько блоков, то выполняется первый из них, как показано на следующем примере.

Select Case n

Case 0

Print “Число равно 0”

Case (-10 To 10)

Print “Число между –10 и +10, кроме 0”

End Select

Запись разветвляющихся алгоритмов.

Ранее мы рассмотрели разветвляющийся алгоритм решения квадратного уравнения, а теперь запишем его на VBA.

Dim a, b, c, root1, root2, D As Single

Input a, b, c

D = b^2-4*a*c

If D< 0 Then

Print “корней нет”

Else

root1 = (-b+Sqr(D))/2/a

root2 =(-b-Sqr(D))/2/a

Print “первый корень ”, root1

Print “второй корень ”, root2

End If

Как мы уже отмечали выше, если а=0, то возникнет ошибка при делении на ноль, чтобы этого избежать, надо вставить проверку этого случая, например, так.

Dim a, b, c, root1, root2, D As Single

Input a, b, c

If a = 0 Then

Print “уравнение не квадратное, т.к. а=0”

Else

D = b^2-4*a*c

If D< 0 Then

Print “корней нет”

Else

root1 = (-b+Sqr(D))/2/a

root2 =(-b-Sqr(D))/2/a

Print “первый корень ”, root1

Print “второй корень ”, root2

End If

End If

Надо заметить, что в этом случае внутри первого оператора If имеется ещё один оператор If, поэтому две последние строчки это не ошибка записи, а признаки окончания сначала второго, вложенного оператора If, а затем первого оператора If.

Эту программу можно ещё усовершенствовать, если выдавать решение и при равенстве а=0. В этом случае мы имеем линейное уравнение , которое может иметь решение , если конечно, . Вам предлагается внести соответствующие усовершенствования в предыдущую программу самостоятельно.

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

1. Каков синтаксис условного оператора If…Then?

2. Каков синтаксис условного оператора If…Then…Else?

3. Каков синтаксис блочного условного оператора If…Then…Else?

4. Каков синтаксис условного оператора Select…Case?

5. Что может быть использовано в качестве значения для блока Case?

6. Допускают ли условные операторы вложенность больше двух?

Лекция 14 (2 часа).

Виды циклов и их реализация на VBA.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.