ЧАСТЬ 3

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 



3.10.4. Операторы управления

К операторам управления относятся 2 типа операторов [6]:

1) перехода и выбора (Goto, If – Then – Else и Select Case);

2) повтора (For – Next, For Each, Do – Loop, While – Wend).

Оператор перехода имеет вид:

Goto метка, где метка – это цифровая комбинация, стоящая ещё и перед оператором, на который нужно перейти. В современных программах его стараются не использовать.

Условный оператор If имеет несколько конструкций. Он может быть в виде простой или блочной структуры [9].

  1. If условие Then [инструкция] [Else инструкция Else] – простая структура If (в [] заключена необязательная часть оператора).

    Примеры:

А) If Сумма > 1000 then Скидка = 0.05 Else Скидка = 0

Б) If Сумма > 1000 then Скидка = 0.05

  1. If Условие then [инструкция ] [Else (инструкция Else) End if]

Примеры:

А) If Сумма> 1000 then Скидка = 0.05 Else скидка = 0 End If

Б) If сумма >1000 then Скидка = 0.05 End If

  1. If условие1 then

[блок инструкций 1]

ElseIf Условие2 then

[блок инструкций 2] – блочная структура If

Else [блок инструкций Else] End If

Блок – это последовательность операторов одной строки, разделённая двоеточием.


Пример. Определить, какому интервалу принадлежит число:

X= InputBox (“Введите число”)

If X >0 and X<=1 then MsgBox “Число из интервала [0,1]”

ElseIf X >1 And X< =2 then MsgBox “Число из интервала (1,2]”

Else MsgBox “Число либо отрицательное, либо>2” : End If

Разновидность простого оператора имеет вид:

If <выражение> Then <оператор>

Если условие истинно в какой-либо конструкции оператора, то выполняется простой или составной оператор, следующий за Then.

Рассмотрим примеры [5].

Пример 1:

If AvgPrice>12000 Then

DiffPrice = Full(234, 45600)

ElseIf AvgPrice>24000 Then

DiffPrice = Full(12000, 45000)

ElseIf AvgPrice>36000 Then

DiffPrice = Full(24000, 50000)

Else DiffPrice = Full(36000, 70000

End If


Пример 2. Вычислить у по заданным на рабочем поле Excel а и х.

Private Sub CommandButtonl_Click()

Dim x As Integer, у As Integer, a As Integer

x = Лист1.Range("A2").Value

a = Лист1.Range("B2").Value

If x >= 2 Then у = а*х^2 + Log(x)

Else If (x > -2) And (x < 2) Then

у = Sin(x) - a * x ^ 3

Else у = Log(Abs(x ^ 3-3*х^2-7*а))

End If

End If

Лист1.Range("C2").Value = у

End Sub


Пример 3.
Вычислить Y, если заданы значения для al, be, x

Sub CommandButton1_Click()

Dim al, be, x As Single

al = Лист1.Range("a1").Value

be = Лист1.Range("a2").Value

x = Лист1.Range("a3").Value

If al < 0.5 Then y = (Log(2) / Log(10)) * Cos(al) ^ 2 + Sin(be) ^ 3 _
Else y = (Sin(Abs(2 - Sin(al)) / Cos(Abs(2 - Sin(al))))) * Exp(x)

Лист1.Range("c2").Value = y

End Sub

Оператор выборки Select Case также относится к операторам перехода [5]. Он используется реже оператора If.

Он имеет вид:

Select Case <величина>

Case <сравнение 1>

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

Case <сравнение 2>

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

………….

Case Else

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

End Select


Пример:

Sub main()

Dim x, y As Single

x = 3

Select Case x

Case Is <= -4

Y= x-2

Case Is >= 4

Y=x+2

Else y = Cos(x)

End Select

MsgBox "y=" & CStr(y)

End Sub


Есть еще функции выбора, которые возвращают одну из альтернатив [5]:
  1. If ( Expr, Truepart, FalsePart)

Expr – проверяемое выражение.

Truepart – значение или выражение, возвращаемое, если Expr – истина.

FalsePart – значение или выражение, возвращаемое, если Expr – ложь.

  1. Choose (index, choose1[,choose2…] возвращает значение, выбранное из списка параметров index, лежит в интервале [1 … число элементов в списке].

  2. Switch (Expr1, value1, Expr2, value2…)

expr – выражение типа variant.

value – возвращаемое значение, если соответствующее expr – истина.


Пример 1:

Число = InputBox(«Введите целое число»)

Select Case Число

Case 1: MsgBox “Число равно 1”

Case 2, 3: MsgBox “Число равно 2 или 3”

Case 4 to 6: MsgBox “Число от 4 до 6”

Case Is>=7: MsgBox “Число не менее 7”

End Select


Пример
2. Идентификация нажатой клавиши.

Private Sub UserForm_KeyDown (byval keykode As MsForm. _ ReturnInteger, byval Shift As Integer)

Select Case KeyKode

Case vbkey 0: MsBox “Нажали 0”

Case vbkey 1, vbkey 2: MsBox “Нажали 1 или 2”

Case vbkey 3 to vbkey 9, vbkey A to vbkey z: MsBox “Нажали цифру от 3 до 9 или буквенную клавишу”

Case Else: MsBox “Нажата не буква и не цифра”

End Select

End Sub


Пример 3. Вычислить у по заданным на рабочем листе а и х.

Private Sub CommandButton1_Click()

Dim x, y As Integer

X= Лист1.Range (“B2”). Value

A=Лист1.Range (“A2”).Value

Select Case A

Case Is >=x

Y = 0

Case Is <= -x

Y=X-A

Case Else

Y=SQR(A^2-X^2)

End Select

Лист1.Range (“C2”).Value=Y

End Sub

 

 


© Сибирская государственная геодезическая академия (СГГА), 2011