Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11 Операт мови VBA та прогр типов обч процес.doc
Скачиваний:
10
Добавлен:
16.02.2016
Размер:
245.76 Кб
Скачать

П

If<умова1>Then

<блок операторів 1>

ElseIf< умова2>Then

<блок операторів 2>

ElseIf< умова3>Then

<блок операторів 3>

……………………..

ElseIf < умова n>Then

<блок операторів n>

Else

<блок операторів гілки Else>

End If

овний формат цього оператора такий:

З повного формату оператора IfThenElseможна виділити такі частинні випадки:

  • Однострічковий оператор 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]