Логические выражения и вычисление их значений

Логические выражения называют условиями. Условие, если оно выполняется, имеет значение True, если не выполняется, - False. Эти логические значения являются результатами вычисления логических выражений.

Условия различают простые и сложные.

Для построения простых условий используются операции сравнения: >, <, =, >=,<=, <>.

Для построения сложных условий используются логические операции и, возможно, круглые скобки Not, And, Or.

Результаты выполнения логических операций для логических выражений A и B приведены в таблице 7.3.

Таблица 7.3

Таблица истинности

A B Not A A And B A Or B
True True False True True
False True True False True
True False False False True
False False True False False

Программирование ветвлений

Ветвление в VISAUL BASIC организуется с использованием:

· условного оператора IF,

· оператора выбора CASE.

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

Для проверки одного условия и выполнения оператора или блока операторов используется оператор IF…THEN. Этот оператор можно использовать с разным синтаксисом: однострочным (линейным) и многострочным (блочным).

а) Однострочный:

If условие Then операторы1 [Else операторы2]

б) Блочный:

If условие Then

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

[Else

блок операторов2]

EndIf

Пример решения задачи с использованием блочного оператора IF показан на рис. 7.7.

 
  Логические выражения и вычисление их значений - student2.ru

Рис. 7.7. Пример решения задачи с использованием блочного оператора IF:

в) Для проверки более одного условия и выполнения одного из нескольких блоков операторов используется оператор IF вида:

If условие 1 Then

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

ElseIf условие 2 Then

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

……………

ElseIf условие n Then

блок операторов n

[Else

блок операторов Else]

End If

Например:

Public Function Obr_Err (Err_Num As Integer) As _
Integer

Dim Txt As String

If Err_Num=6 Then

Txt=”переполнение” : Obr_Err=2

ElseIf Err_Num=11 Then

Txt=”деление на нуль” : Obr_Err=2

Else

Txt=”нераспознанная ошибка”&Err_Num : Obr_Err=3

EndIf

Err.Clear

MsgBox Txt, VbOkOnly, “Ошибки выполнения”

End Function

Оператор выбора SELECT CASE

Используется для проверки одного условия и выполнения одного из нескольких блоков операторов.

Формат записи оператора:

Select Case проверяемое выражение

Case список выражений 1

операторы 1

Case список выражений 2

операторы 2

Case список выражений 3

операторы 3

……………………………….

Case Else

операторы группы Else

End Select

Проверяемое выражение вычисляется в начале работы оператора Select Case. Это выражение может возвращать значение любого типа (логическое, числовое, строковое).

Список выражений – одно или несколько выражений, разделенных стандартным символом –разделителем(;).

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

- выражение

- выражение 1 To выражение 2

- Is логический оператор(оператор сравнения) выражение

Например, Is >= 10

 
  Логические выражения и вычисление их значений - student2.ru

Пример процедуры, использующей оператор выбора, представлен на рис. 7.8.

Рис. 7.8. Пример решения задачи с использованием оператора
Select Case.

Методы Print и Cls

Метод Print применяется для вывода данных в форму или на принтер. Для вывода на принтер используется метод Printer.Print, а для вывода в текущую форму достаточно просто написать Print.

Метод Cls убирает с формы весь текст, выведенный ранее. Если его не вызвать, после нескольких вызовов Print текст исчезает под нижним краем формы.

Программирование циклов

В VISAUL BASIC существуют три оператора цикла:

1) For … Next

2) While … Wend

3) Do … Loop

Оператор цикла For … Next

Оператор цикла For…Next имеет формат:

For счетчик = начало To конец [Step приращение]

операторы

Next [счетчик]

Рассмотрим пример решения задачи 6, использующей цикл с параметром. Требуется найти сумму 7 чисел.

Private Sub Command1_Click()

Dim a(7) As Integer, s As Integer

s = 0

For i = 1 To 7

a(i) = Val(InputBox("Введите число"))

s = s + a(i)

Next

Print s

End Sub

Оператор цикла WHILE…WEND

Используется для организации циклов с предусловием и имеет следующий формат:

While условие продолжения цикла

операторы тела цикла

Wend

Рассмотрим пример решения задачи 4 - вывести в форму все значения, большие 1, причем каждое последующее значение получается путем деления предыдущего пополам. Блок-схема решения этой задачи приведена на рис. 6.7.

Private Sub Command1_Click()

Dim x As Single

x = InputBox("Введите число")

While x > 1

Print x

x = x / 2

Wend

End Sub

Оператор цикла DO…LOOP

Используется для организации циклов с неопределенным числом повторений (с предусловием и с постусловием).

Этот оператор для организации цикла с предусловием может использоваться в двух модификациях:

а) Do While условие продолжения цикла

операторы тела цикла

Loop

б) Do Until условие прекращения цикла

операторы тела цикла

Loop

Для организации цикла с постусловием этот оператор также может быть использован в двух модификациях:

в) Do

операторы тела цикла

Loop While условие продолжения цикла

г) Do

операторы тела цикла

Loop Until условие прекращения цикла

На рис. 7.9 приведен пример использования цикла с постусловием для решения задачи сортировки одномерного массива по возрастанию элементов.

Логические выражения и вычисление их значений - student2.ru

Рис. 7.9. Пример использования цикла с постусловием.

Наши рекомендации