Анимация
JavaScript
|
Главная Библионтека 5. Функции пользователя с операторами условного перехода 45 В условном операторе допустимо использование блока операторов вместо любого из операторов. В этом случае условный оператор имеет вид: If УСЛОВИЕ Then БЛ0К 0ПЕРАТ0Р0В 1 Else БЛ0К 0ПЕРАТ0Р0В 2 End if Ветвь Else в условном операторе является необязательной. Таким образом, возможен следующий синтаксис оператора условия: If УСЛОВИЕ Then ОПЕРАТОР ИЛИ If УСЛОВИЕ Then БЛОК ОПЕРАТОРОВ End if Отметим, что в операторе условия после Then можно разместить несколько операторов для того, чтобы все они выполнялись, если условие истинно. В этом случае они должны располагаться в одну строчку и быть разделены двоеточием, например: If А > 5 Then А=А+5:В=В+А"2:С=С+В В условном операторе может проверяться несколько условий. В этом случае условный оператор имеет вид: If УСЛ0ВИЕ 1 Then БЛ0К 0ПЕРАТ0Р0В 1 Elself УСЛ0ВИЕ 2 Then БЛ0К 0ПЕРАТ0Р0В 2 Elself УСЛ0ВИЕ 3 Then Else БЛОК ОПЕРАТОРОВ End If В данном условном операторе выполняется БЛОК ОПЕ-PATOPOB i, если истинно УСЛОВИЕ 1, в противном случае выполняется БЛОК ОПЕРАТОРОВ. Рассмотрим использование условного оператора и оператора Exit Function на примере функции пользователя, вычисляющей следующую формулу: Тогда функция пользователя имеет вид: Function Invers function(х) If х = О Then Exit Function Else Invers function = 1/x End Function 6. функции пользователя с несколькими операторами условного перехода ,t<-h 21n(l + ,) + i±,,e(-l,0), 2 + t (l+o>o. Рассмотрим пример функции пользователя ([2]), вычисляющей значение следующей функции с тремя условиями. Функцию Z можно вычислить с помощью следующей функции пользователя: Function z(t) If t <= -1 Then z = (1 + Abs(t))/(1 + t + t " 2) " (1/3) If t >-l And t < 0 Then z = 2 * Application.Ln(l + t 2) + (1 + Cos(t) " 4)/(2 + t) If t >= 0 Then z = (1 + t) (3/5) End Function Функция Ln не является внутренней функцией VBA, поэтому для ее вызова нужно пользоваться конструкцией Application.Ln. Существует также другой способ вычисления функции z: Function z(t) If t <= -1 Then z = (1 + Abs(t))/(1 + t + t " 2) " (1/3) Elself t < 0 Then z= 2 * Application.Ln(l + t 2) + (1 + Cos(t) " 4)/(2 + t) Else z = (1 + t) - (3/5) End If End Function 0 1 2 3 4 5 6 7 8 9 10 11 12 13 [ 14 ] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |