- •Тема 12. Основи офісного програмування
- •End If
- •End If
- •End If
- •End If
- •11.5. Програмування розгалужених обчислювальних процесів з використанням оператора If
- •[Case Else
- •End Select
- •11.7. Програмування розгалужених обчислювальних процесів з використанням оператора Select Case
- •11.9. Програмування циклічних обчислювальних процесів з використанням оператора For … Next
- •11.11. Програмування циклічних обчислювальних процесів з використанням оператора Do … Loop
- •Контрольні питання
П
If<умова1>Then <блок
операторів 1> ElseIf< умова2>Then <блок
операторів 2>
ElseIf<
умова3>Then <блок
операторів 3>
……………………..
ElseIf <
умова n>Then <блок
операторів n> Else <блок операторів
гілки Else>
End If
З повного формату оператора If … Then … Elseможна виділити такі частинні випадки:
Однострічковий оператор If;
Одноблочний оператор If;
Багатоблочний оператор If;
Повноформатний оператор If.
Однострічковий умовний оператор має формат
If <умова>
Then
<оператор>
де <умова> - логічний вираз або логічна константа, яка може приймати одне із двох значень: True або False;
<оператор> - будь-який допустимий у мові VBAоператор.
Однострічковий оператор If записується лише в одній стрічці. Його робота полягає в наступному. Якщо <умова> приймає значенняTrue,то виконується <оператор>, записаний після словаThen,упротилежному випадку операторIfпропускається і виконуєтьсянаступний за ним оператор.
Приклад: Оператор If curОптова ціна> 1000Then MsgBox“Ціна дуже велика”
Одноблочний умовний оператор має формат:
If<умова>Then <блок операторів>End If
В одноблочному умовному операторі після слова Thenу стрічці нічого більше не пишеться. У наступних стрічках записані оператори, які входять в <блок операторів>. Закінчуєтьсяодноблочний умовний оператор стрічкою,уякій записаніслужбові словаEnd If.Робота одноблочногоумовногооператора полягає в наступному. Якщо <умова> приймає значенняTrue,то виконується <блок операторів>, записаний після словаThen,упротилежному випадку операторIfпропускається і виконується оператор, записаний після слівEnd If.
Приклад. Оператор IfcurOптЦіна > 1000Then
MsgBox„Оптова ціна велика!”
curOnтЦіна = сurOnтЦіна -10
End If
виведе вікно повідомлення з розміщеним у ньому текстом «Оптова ціна велика!» і зменшить значення змінної curOnтЦіна на 10 одиниць, але лише у тому випадку, якщо виконуватиметься умова curOптЦіна > 1000. У протилежному випадку цей оператор буде пропущений.
Багатоблочнийумовний оператор має формат:
If<умова1>Then
<блок операторів 1>
ElseIf< умова2>Then
<блок операторів 2>
ElseIf< умова3>Then
<блок операторів 3>
……………………..
ElseIf < умоваn>Then
<блок операторів n>
End If
Робота багатоблочногоумовногооператора полягає в наступному. Якщо <умова1> приймає значенняTrue,то виконується <блок операторів1>,упротилежному випадку перевіряється <умова2>;якщо <умова2> приймає значенняTrue,то виконується <блок операторів2>, упротилежному випадку перевіряється <умова3>; і т.д., поки не перевіриться < умоваn>. Якщо жодна з умов не буде істинною, операторIfпропускається і виконується оператор, записаний після слівEnd If.
Робота повноформатного багатоблочногоумовногооператора, наведеного на початку розділу, здійснюється аналогічно за одним винятком. Якщо жодна з умов не буде істинною, то виконується оператор, записаний після Else.
11.5. Програмування розгалужених обчислювальних процесів з використанням оператора If
Формулювання задачі. Скласти підпрограму обчислення значення складної функції
Нижче наведені форма та програмний код розв’язування даної задачі.
Private Sub CommandButton1_Click()
'Завдання. Дано аргумент функції x.
'Необхідно обчислити:
'значення складної функції y, яка задана виразами:
'x^2-3*x+1, якщо x<-2;
'sin(3*x)^2*log(abs(2*x-1))/log(3), якщо -2=<x=<3;
'x^2+5*x+1, якщо 0<x<2;
'2^(-x), якщо x>=2;
Dim x, y As Single
x = CSng(TextBox1.Text)
If x <= -2 Then
y = x ^ 2 - 3 * x + 1
ElseIf (x >= -2) And (x <= 0) Then
y = Sin(3 * x) ^ 2 * Log(Abs(2 * x - 1)) / Log(3)
ElseIf (x > 0) And (x < 2) Then
y = x ^ 2 + 5 * x + 1
Else
y = 2 ^ (-x)
End If
MsgBox "x=" & Format(x, "0000.00") & " y=" & _
Format(y, "0000.00")
TextBox1.Text = Format(x, "0000.00")
TextBox2.Text = Format(y, "0000.00")
TextBox3.Text = TextBox3.Text _
+ "x=" + Format(x, "0000.00") + " y=" + _
Format(y, "0000.00") + vbCr
End Sub
11.6. Умовний оператор вибору Select Case