Создание функций пользователя с операторами условного перехода If-Then и If-Then-Else


 

Рассмотрим пример создания функции пользователя, вычисляющей следующую функцию с двумя условиями:

Программа функции пользователя вводится на лист модуля редактора Visual Basic и имеет вид:

Function G(y)

If y <= 0 Then G = (1 + y ^ 2)/(1 + y ^ 4 )^(1/2) _

Else G = 2*y + Sin(y)^2/(2 + y)

End function

Заметим, что знак подчеркивания «_» в конце обозначает, что следующая строка является продолжением предыдущей. Перед знаком подчеркивания необходимо нажать клавишу пробел.

Пусть требуется найти значения данной функции в интервале [-2; 2] с шагом 0,1, используя функцию пользователя и формулу Excel а также построить графики функции, используя ее значения, полученные с помощью функции пользователя и формул Excel. Для этого необходимо:

· ввести в ячейки A1, B1, C1 имена аргумента y и функций g1(y), g2(y) соответственно;

· ввести значения ряда независимой переменой y в диапазон ячеек А2:А42;

· в ячейку В2 вставить формулу =G(A2), используя функцию пользователя G, с помощью мастера функций (рис. 10.4);

· скопировать формулу =G(A2), из ячейки В2 в диапазон В3:В42.

Рис. 10.4. Вставка функции пользователя G с помощью мастера функций

Тот же результат можно получить, если ввести в ячейку С2 формулу

=ЕСЛИ (А2<=0; (1+А2 ^ 2) / (1+A2 ^ 4) ^ (1/2); 2*A2+SIN(A2) ^ 2/ (2+A2))

и скопировать ее в диапазон ячеек C3:C42.

Чтобы построить графики функций g1(y), g2(y) необходимо воспользоваться мастером диаграмм, выполнив команду Вставка~Диаграмма…~ или нажав кнопку Мастер диаграмм на панели инструментов Стандартная. На первом шаге мастера диаграмм задается тип диаграммы Точечная, вид Сглаженная. На втором шаге мастера диаграмм вводится адрес исходного диапазона. Для функции g1(y) исходным диапазоном будет диапазон А1:В42. Для функции g2(y) в качестве исходного диапазона задается диапазон А1:А42; С1:С42 (для выделения несмежных диапазонов необходимо удерживать клавишу Ctrl). Значения и графики функций g1(y) и g2(y) приведены на рис. 10.5.

Рис. 10.5. Значения и графики функций g1(y) и g2(y).

Если формулы в рабочий лист введены верно, то значения и графики функций g1(y) и g2(y) должны совпадать.

В функции G использовался условный оператор If-Then-Else, обеспечивающий передачу управления в программе в зависимости от выполнения условия.

Синтаксис:

If УСЛОВИЕ Then ОПЕРАТОР_1 Else ОПЕРАТОР_2

В операторе условия ОПЕРАТОР_1 выполняется, если УСЛОВИЕ истинно, в противном случае выполнятся ОПЕРАТОР_2. УСЛОВИЕ – это выражение логического типа. Результат выражения всегда имеет булевский тип. Выражение может быть простым и сложным. При записи простых условий могут использоваться все возможные операции отношения, указанные в табл. 10. 1.

Таблица 6. 1. Логические отношения

Операция Название Выражение Результат
= Равно A = B True, если A равно B
<> Не равно A <> B True, если A не равно B
> Больше A > B True, если A больше B
< Меньше A < B True, если A меньше B
>= Больше или равно A >= B True, если A больше или равно B
<= Меньше или равно A <= B True, если A менше или равно B

Сложные условия образуются из простых путем применения логических операций и круглых скобок. Список логических операций приведен в табл. 10.2.

Таблица 6.2.Логические операции

Операция Название Выражение A B Результат
Not Логическое отрицание Not A False   True
True   False
And Логическое И A And B True True True
True False False
False True False
False False False
Or Логическое ИЛИ A Or B True True True
True False True
False True True
False False False

 

В условном операторе допустимо использование блока операторов вместо любого из операторов. В этом случае условный оператор имеет вид:

If УСЛОВИЕ Then

БЛОК_ОПЕРАТОРОВ_1

Else

БЛОК_ОПЕРАТОРОВ_2

 

End If

Ветвь Else в условном операторе является необязательной. Таким образом, возможен следующий синтаксис оператора условия:

 

If УСЛОВИЕ Then ОПЕРАТОР

If УСЛОВИЕ Then

БЛОК _ ОПЕРАТОРОВ

End If

 

Заметим, что в операторе УСЛОВИЕ после Then можно разместить несколько операторов, для того чтобы все они выполнялись, если условие истинно. В этом случае они должны располагаться в одну строчку и быть разделены двоеточием, например

 

If A > 10 Then A = A+1: B = B + A: C = C + B

 

В условном операторе может проверяться несколько условий. В этом случае условный оператор имеет вид:

If УСЛОВИЕ_1 Then

БЛОК_ОПЕРАТОРОВ_1

ElseIf УСЛОВИЕ_2 Then

БЛОК_ОПЕРАТОРОВ_2

ElseIf УСЛОВИЕ_3 Then

. . .

Else

БЛОК _ ОПЕРАТОРОВ

End If

В данном условном операторе выполняется БЛОК_ОПЕРАТОРОВ i,если истинно УСЛОВИЕ_i, в противном случае выполняется БЛОК_ОПЕРАТОРОВ.

Рассмотрим использование условного оператора и оператора Exit Function на примере функции пользователя, вычисляющей квадратный корень числа.

 

Function Sq(x)

If x < 0 Then Exit Function Else Sq = x^(1/2)

End Function

 



Дата добавления: 2019-05-21; просмотров: 316;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.