![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
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.
|