Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
23.02.2016
Размер:
4.02 Mб
Скачать

3.6.3 Оператори переходу

В мові VB є можливість здійснювати перехід в будь-який фрагмент програми з допомогою оператора

GOTO <мітка>

<Мітка> може бути цілим числом або ідентифікатором, який проставляється на початку рядка. В одній програмній одиниці мітки не повинні повторюватись:

A = B + C

Goto 25

ABC Print X

……

25 C$ = 45

В даному фрагменті після оператора A = B + C відбувається безумовний перехід по мітці 25. Наступний після оператора Goto повинен бути обов’язково поміченим для передачі управління на нього з іншої ділянки програми (інакше він і подальший оператори ніколи не будуть виконані).

Якщо в програмі потрібно реалізувати розгалужені обчислювальні процеси, застосовують оператор IF (якщо). Цим оператором кодуються блоки “Рішення”. В залежності від структури блок-схеми алгоритму можуть бути такі варіанти побудови оператора IF:

I

а)

f <умова> Then <оператор S>

Якщо <умова> істинна, виконується оператор S, а потім наступний оператор програми. Якщо ж <умова> буде хибною, оператор S буде проігнорованим і відразу буде виконуватись наступний оператор програми.

Приклад:

If X>0 Then Print “Значення lnX=”; log(x)

б)

If <умова> Then <оператор S1> Else <оператор S2>

При істинності <умови> виконується оператор S1, а при хибності – S2, а потім наступний оператор в програмі.

If X>0 Then Print “LOG(Х)=”;log(X) Else Print “Число ”;X;“ логарифма не має”

в)

Якщо оператори S1 та S2 являються довгими або складеними із декількох операторів, то оператор If реалізують як блоковий.

If <умова> Then

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

[ Else

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

Endif

<Блок операторів 2> взятий в квадратні дужки. Це означає, що він в даній структурі не є обов’язковим.

If X>0 Then

? “Логарифм Х=”; log(X)

Else

? “Число ”; X; “ немає логарифму”

Endif

Можна навести такий приклад використання блокового If для визначення натискання відповідної кнопки діалогового вікна функції MsgBox. Якщо MsgBox запускався з кодом 4, то визначення по якій із кнопок клацнути закриваючи вікно, можна так:

If MsgBox (“Вирахувати?”, 4, “Вікно 3”)=6 Then

< Щось там вираховуємо >

Else

< Повідомляємо, що нічого не виконується >

Endif

г)

Якщо обчислювальний процес вимагає перевірки не однієї умови, а декілька, то застосовують вкладені оператори If. В цьому випадку в блоці операторів 1 (рідше 2) застосовують знову оператор If.

If <умова 1> Then

<блок S1>

Else If <умова 2> Then

<блок S2>

………

Else If <умова n> Then

<блок Sn>

[Else

<блок Sk>]

Endif

При значенні <умови 1> True виконується блок операторів S1, а потім наступний після Endif оператор. Якщо ж значення <умови 1> буде хибним (False), будуть перевірятися подальші умови фрагмента. Якщо всі умови будуть хибними, то буде виконуватись необов’язковий блок операторів Sk.

Аналогічним по принципу дії є оператор Select Case, який має такий синтаксис:

Select Case <тест>

Case <значення 1>

<Блок S1>

Case <значення 2>

<Блок S2>

………

Case <значення n>

<Блок Sn>

[Else

<Блок Sk> ]

End Select

Параметр <тест> буде порівнюватися послідовно з <значеннями>. В тому випадку, якщо це порівняння буде істинним, виконається відповідний блок операторів, а потім оператор, що записаний після End Select.

Параметри <значення > можуть мати дискретні представлення, списки, діапазони, а також оператори порівняння.

Наведемо приклади застосування цих операторів. Знайдемо складну функцію, яка залежить від цього аргументу так:

Блоковий If:

If X<0 Then

? “Функція не визначена”

Else If X=1 and X=2 and X=3 and X=4 Then

Print “Y=”; log(X)

Else If X>4 and X<11 Then

Print “Y=”; 2*log(X)+5

Else If X>10 Then

Print “Y=”; 7*log(X)-5

EndIf

Оператор Case:

Select Case X

Case Is<0 ‘ Оператор порівняння

? “Функція не визначена”

Case 1,2,3,4 ‘ Список

Y=log(X)

Case 5 To 10 ‘ Діапазон

Y=2*log(X)+5

Case Is>10 ‘ Оператор порівняння

Y=7*log(X)-5

EndSelect

Print “Значення Y=”;Y

Соседние файлы в папке Студентам заочникам ФЕФ