Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сидорова-004.С34.doc
Скачиваний:
91
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

5.3. Объединение условий с помощью логических операций

Пример У3: Вычислить:

Если этот пример записать в виде

то он ничем не будет отличаться от рассмотренного выше примера У2 (разветвление на три ветви). ГСА решения задачи приведена на рис. 11.

П рограмма имеет вид:

Sub Пример_У3_ Сложное_

ветвление()

Dim x As Single, y As Single

'Ввод x:

x = Val(InputBox("Введите x"))

If x < 1 Then

y = Cos(x) 'Ветвь 1

ElseIf x <= 2 Then

y = Sin(x) 'Ветвь 2

Else

y = Cos(x) 'Ветвь 3

End If

MsgBox "При x =" & x & " y =" & y

End Sub

В операторе If можно объединять результаты простых отношений в более сложные логические формулы с помощью операций And (и), Or (или). При изображении ГСА каждое условие следует записывать в отдельном блоке.

Для рассматриваемой задачи проверку сложносоставных условий можно записать так:

If x >= 1 And x <= 2 Then

y = sin(x)

Else

y = cos(x)

End If

или (c применением линейной формы оператора If):

If x < 1 Or x > 2 Then y = cos(x) Else y = sin(x)

Использование подобной записи позволяет сократить число строк программного кода, но иногда может привести к ухудшению восприятия программы, например:

Sub Пример_У3_Сложное_ветвление1()

Dim x As Single, y As Single

x = Val(InputBox("Введите x ")) 'Ввод x

If x >= 1 And x <= 2 Then y = sin(x) Else y = cos(x)

MsgBox "При x = " & x & " y = " & y

End Sub

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

If a < 3 Or f > 2 Then z = 5 : s = 0 – правильная запись;

If a < 3 Or f > 2 Then z = 5 And s = 0 – неправильная запись.

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

Данный оператор используется для передачи управления в определенное место программы без проверки каких-либо условий и имеет следующий формат:

GoTo Метка

Метка обозначает место в программе, куда осуществляется переход. Имя метки выбирается по обычным правилам для имен переменных и оканчивается двоеточием. Метка может находиться как до, так и после оператора GoTo. Например:

GoTo m1 'Переход на строку с меткой m1

…….

m1: y = cos(x)

В ГСА оператор GoTo отображается просто линией потока.

В следующем примере рассмотрено использование в одной программе операторов условного (If) и безусловного (GoTo) перехода.

Пример У4. Составить программу запроса и проверки пароля. Если введенный пароль не совпадает с заданным (например, «ку-ку»), то повторить его ввод.

Г СА решения данной задачи приведена на рис. 12, а текст программы имеет вид:

Sub Пример_У4_Пароль()

Dim parol As String 'Объявление

'строковой переменной parol

'Ввод значения переменной parol:

vp: parol = InputBox("Введите пароль")

If parol < > "ку-ку" Then

MsgBox "Пароль введен

неверно, повторите"

GoTo vp

End If

MsgBox "Пароль введен верно!"

End Sub

Несмотря на то, что оператор GoTo иногда очень удобен, использовать его не рекомендуется, так как программа становится плохо читаемой. Обычно вместо GoTo используют циклическую конструкцию Do While … Loop, которая будет рассмотрена позднее.