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

If условие Then

[операторы]

[Else

[операторы]]

End If

Пример 1.

Пусть для описания задачи используются следующие математические и логические зависимости:

y1 = tg x2; ввести значение y2, если x £ 0

y1 = cos x + sin2 x; y2 = 0, если х > 0

Входные данные: x – переменная вещественного типа.

Выходные данные: y1, y2 – переменные вещественного типа.

Схема алгоритма:

Этому алгоритму соответствует следующий код приложения на языке программирования Visual Basic:

Private Sub Command1_Click()

Dim x As Single, y1 As Single, y2 As Single

x = Text1.Text

If x <= 0 Then

y1 = Tan(x ^ 2)

y2 = InputBox("Введите значение y2")

Else

y1 = Cos(x) + Sin(x) ^ 2

y2 = 0

End If

Print " y1 =" & Format(y1, "0.00") & " y2 =" & Format(y2, "0.00")

End Sub

Ниже представлен результат выполнения программы.

Вложенная структура Развилка

Если при выполнении вычислительного процесса требуется проверить несколько условий, то используется вложенная структура Развилка. Схема алгоритма может иметь вид:

Вложенная структура Развилка также может быть модифицированной. При программировании вложенной структуры Развилка, изображенной на схеме алгоритма, наиболее удобно использовать оператор:

If Условие1 Then

[операторы первой группы]

ElseIf Условие2 Then

[операторы второй группы]

[Else

[операторы третьей группы]]

End If

При выполнении этого оператора сначала проверяется Условие 1. Если условие истинно, выполняются операторы первой группы, затем происходит переход к оператору, следующему за условным оператором. Если условие ложно, то проверяется Условие 2, и в зависимости от его значения выполняются операторы второй или третьей группы.

Примечание. При составлении алгоритма с несколькими условиями рекомендуется проверять условия в порядке от наиболее вероятных к менее вероятным, при этом обеспечивается наибольшая эффективность выполнения кода приложения.

Пример 2.

Пусть для описания задачи используются следующие математические и логические зависимости:

Входные данные: х  переменная вещественного типа.

Выходные данные: y  переменная вещественного типа.

Схема алгоритма будет иметь вид:

Код приложения может иметь вид:

Dim x As Single, y As Single

x = InputBox("x=")

If x>0 Then

y=Sin(x)

ElseIf x = 0 Then

y = 10

Else

y = Сos(x)

End If

Print " y=" & y

или так:

Dim x As Single, y As Single

x=InputBox("x=")

If x>0 Then

y = Sin(x)

Else

If x = 0 Then

y = 10

Else

y = Cos(x)

End if

End If

Print " y=" & Format(y,"0.000")

При использовании условного оператора If необходимо обратить внимание на следующие особенности: в многострочной структуре операторы, выполняемые в случае истинности условия, нельзя записывать в одной строке с ключевым словом Then. В противном случае Visual Basic не распознает многострочный синтаксис конструкции.

Рассмотрим еще несколько примеров.

Пример 3.

Пусть необходимо вычислить значение функций y1 и y2:

y1 = a + ; y2 = a3, если x > a

y1 = arctg x , если x <= a,

где a = b + 1

Входные данные: x, b  вещественного типа.

Выходные данные: y1, y2, a  вещественного типа.

Схема алгоритма:

На форме разместим два элемента управления "Текстовое поле" для ввода значений x и b, элемент управления "Рамка", командную кнопку и для вывода значений переменных x и y2 элемент управления "Надпись" (используется свойство Caption этого элемента управления). Код приложения будет иметь следующий вид:

Private Sub Command1_Click()

Dim x As Single , a As Single, b As Single

Dim y1 As Double, y2 As Double

x=Text1.Text

b=Text2.Text

a=b+1

If x>a Then

y1=a+Abs(x)

y2=a^ 3

Label1.Caption = "При x=" & Str(x) + " : y2=" & Str(y2)

Else

y1=Atn(x)

End If

CurrentX = 1550: Print "a ="; a

MsgBox Format(y1, "0.000"), , " y1 равно"

End Sub

При выполнении условия x < a (3 <10,3+1) форма и диалоговое окно, содержащее значение переменной y1, будут иметь вид:

В противном случае при x > a (5,1>2+1)) вид формы изменится, а диалоговое окно, предназначенное для вывода значения переменной y1, останется прежним:

Пример 4.

Пусть необходимо вычислить значение функции a:

Входные данные: x  переменная вещественного типа.

Выходные данные: a  переменная вещественного типа.

Схема алгоритма:

Оператор Select Case …. End Select

Использование оператора If становится неудобным, когда вложенность структуры Развилка превышает три. В таких случаях целесообразно применять оператор Select Case …. End Select, который позволяет сделать выбор из произвольного числа вариантов. Синтаксис этого оператора следующий:

Select Case x

Case знач. 1

операторы 1

Case знач. 2

операторы 2

………..

Case знач. n

операторы n

[Case Else

операторы ]

End Select

Рис. 13

Схема алгоритма, реализующая данный оператор, представлена на рис. 13.

Параметр x – имя переменной или выражение.

В этом операторе вместо вычисления логического условия выполняется сравнение значения x с каждой из величин, заданных параметром <знач.>.

В блоке Case <знач.> может принимать:

  1. одно значение;

  2. несколько значений, разделенных запятой (например: 2, 3, 4);

  3. значения из области сравнения (например: 4 To 6);

  4. значения из относительной области сравнения (например: Is > = 9 или Is < = 0.5, где Is – ключевое слово).

Очередной блок Case выполняется, если ни одно из предыдущих условий не является истинным. В операторе может быть произвольное число блоков Case. Если ни одно из условий не является истинным, то выполняются инструкции Case Else.

Например, оператор Select Case может использоваться для проверки принадлежности значения случайной величины некоторым заданным значениям. Используем функцию Rnd для получения случайного числа в диапазоне [0;10]:

Randomize

Ns =Int(Rnd*10)+1

Select Case Ns

Case 1

Print "Равно 1"

Case 2, 3

Print "Равно 2 или 3"

Case 4 to 6

Print "Больше или равно 4 и меньше или равно 6"

Case Is >=9

Print "Больше или равно 9"

Case Else

Print "Ни одно из предыдущих"

End Select

Следует обратить внимание, что выражение Is >= 9 определяет все значения переменной Ns, которые больше или равны 9. Если совпадения значений не обнаружится, то на форму выведется текст "Ни одно из предыдущих" и управление передаётся команде, которая следует за оператором End Select.

Оператор безусловного перехода

Оператор безусловного перехода используется в тех случаях, когда после некоторого оператора следует выполнить не следующий по порядку оператор, а какой-либо другой, расположенный в любом месте активной процедуры. Синтаксис этого оператора следующий:

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