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

Структурные операторы представляют собой структуры, построенные из других операторов по строго определенным правилам. Все структурные операторы подразделяются на три группы: условные операторы, операторы выбора и операторы повтора (цикла).

    1. Условные операторы

Операторы в программе-обработчике событий выполняются в той последовательности, в которой они записаны. Однако достаточно часто требуется изменить порядок выполнения операторов в зависимости от выполнения (или невыполнения) определенного условия.

Выбор одного из альтернативных путей работы программного кода в зависимости от результата проверки какого-либо условия (логического выражения) обеспечивают условные операторы. Условный оператор существует в двух формах: полной и сокращенной, и схематично может быть изображен следующим образом:

Сокращенная форма

Полная форма

Условный оператор в VB может иметь однострочную (простую) и многострочную (блочную) структуру. Однострочная структура имеет следующий синтаксис:

Сокращенная форма

If Условие Then Оператор

Полная форма

If Условие Then Оператор_1 Else Оператор_2

Если Условие имеет значение True, то выполняется оператор после ключевого слова Then, а если оно имеет значение False, то выполняется оператор, следующий за ключевым словом Else, если таковой имеется.

Пример:

If a= 7 Then Beep

If x < 9 Then Print ”False!” Else Print ”True!”

Многострочная структура условного оператора имеет следующий синтаксис:

Сокращенная форма

Полная форма

If Условие Then

Оператор_1

Оператор_2

. . . . . .

End if

If Условие Then

Операторы для обработки истинного условия

Else

Операторы для обработки ложного условия End if

Замечание. Ключевое слово End if обозначает конец многострочной конструкции.

Команда if может проверить только одно условие. Если необходимо осуществить переход управления в зависимости от результатов проверки нескольких условий, то их можно задать с помощью оператора Elseif. Оно будет анализироваться только в том случае, если предыдущее условие ложно. Например:

If x>0 Then

Label1.Caption=”Значение х положительно”

Elseif x=0 Then

Label1.Caption=”Значение х равно нулю”

Else

Label1.Caption=”Значение х отрицательно”

End If

Ниже приведен пример событийной процедуры решения квадратного уравнения ax2 + bx + c = 0 с использованием условного оператора.

Private Sub Command1_Click()

d=b*b – 4 * a * c

If d < 0 then

Print ”Уравнение не имеет корней”

Elseif d = 0 Then

x = -b / (2*a)

Print ”Уравнение имеет один корень”; x

Else

x1 = (-b + sqr(d)) / (2 * a)

x2 = (-b - sqr(d)) / (2 * a)

Print ”Уравнение имеет два корня ”; x1, x2

End If

End Sub

    1. Оператор выбора Select … Case

Оператор выбора позволяет обрабатывать в программе несколько условий и аналогичен блоку конструкций if...Then...Else. Используется он для частичного облегчения программирования задач, в которых содержится большое число различных проверок. Его также удобно применять тогда, когда выполнение одного из многочисленных действий зависит от значения какой-либо переменной. Синтаксис оператора выбора Select … Case:

Select Case Выражение

Case Диапазон значений _1

Операторы, выполняемые при попадании Выражения в Диапазон значений _1

Case Диапазон значений _2

Операторы, выполняемые при попадании Выражения в Диапазон значений _2

. . .

Case Диапазон значений _N

Операторы, выполняемые при попадании Выражения в Диапазон значений _2

[Case Else

Операторы, выполняемые при непопадании ни в один из указанных диапазонов

End Select

Замечание 1. Квадратные скобки служат для обозначения необязательной части в структурах операторов.

Выражение – любое выражение, допустимое в языке VB.

После ключевого слова Case, которое повторяется столько раз, сколько различных действий может быть выполнено, записывается Диапазон значений этой переменной. При попадании значения переменной в этот диапазон выполняется действие, которое записано вслед за ним.

Диапазон значений можно задать простым перечислением их через запятую (Case 3,5,9), либо с помощью ключевого слова To(Case 1 To 9). Если в Диапазоне значений необходимо использовать операции отношения, то такой диапазон записывается с помощью ключевого слова Is.

Ниже приведены примеры событийных процедур с использованием оператора выбора.

Пример 2. Проанализировать случайное число, заданное в промежутке от 0 до 10.

Private Sub Command1_Click()

Randomize

a = Int(Rnd * 9) + 1 'Cлучайное число от 1 до 10

Select Case a

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

End Sub

Пример 1. Решение квадратного уравнения ax2 + bx + c = 0.

Вариант 1. Здесь Выражение имеет логический тип (d>=0):

Private Sub Command1_Click()

A=val(inputbox(”Задайте А”))

B=val(inputbox(”Задайте B”))

C=val(inputbox(”Задайте C”))

D=B^2-4*a*c

Select Сase d>=0 ' Выражение логического типа

Case True

Print ”x1=”;(-b-sqr(d))/(2*a),”x2=”;(-b+sqr(d))/(2*a)

Case False

Print ”Решений нет”

End Select

End Sub

Вариант 2. Здесь Выражение имеет вещественный тип, а в Диапазоне значений используются операции отношения:

Private Sub Command1_Click()

Select Case b * b - 4 * a * c 'Вещественный тип

Case Is < 0 'Используется операция отношения >

Print "Уравнение не имеет корней"

Case Is = 0

x = -b / (2 * a)

Print "Уравнение имеет один корень"; x

Case Else

X1 = (-b + Sqr(d)) / (2 * a)

X2 = (-b - Sqr(d)) / (2 * a)

Print "Уравнение имеет два корня "; X1, X2

End Select

End Sub