- •Основы алгоритмических языков программирования Понятие о языках программирования. Современные языки программирования высокого уровня
- •Лексические единицы языков программирования
- •Интегрированные среды разработки программ
- •История развития технологии vba
- •Интегрированная среда разработки vba
- •Составные части vba-проекта. Добавление пользовательского кода
- •Вывод отладочных сообщений. Пошаговое выполнение и инструменты отладки
- •Концепция памяти. Переменные и их декларация в языках программирования
- •Управляющие структуры выбора
- •Структурные операторы в алгоритмических языках программирования
- •Данная логическая операция имеет следующую таблицу истинности, в которой «0» соответствует значению false, а «1» – true (табл 1).
- •Остальные логические операторы являются двухоперандными. Операция логического умножения and имеет следующую таблицу истинности (табл 2):
- •Наконец операция логического исключающего или представляется следующей таблицей истинности (табл 4):
- •Реализация управляющих структур выбора в vb
- •Циклические управляющие структуры
- •Реализация циклических управляющих структур в vb
- •Цикл с постусловием имеет похожий синтаксис:
- •Основные положения процедурного программирования
- •Реализация процедурного программирования в Visual Basic
- •Фундаментальные структуры данных
- •Массивы в vb
- •Агрегация разнородных типов. Структурные типы данных
- •Тип данных определяемый пользователем в vb
- •Основы объектно-ориентированного программирования
- •Реализация основных идей объектно-ориентированного программирования в языке vb. Поля и методы. Конструирование объекта класса. Адресная природа объекта класса
- •Свойства и события в vb. Связь объекта класса и его клиентов
- •Интерфейс класса в vb и его наследование
Данная логическая операция имеет следующую таблицу истинности, в которой «0» соответствует значению false, а «1» – true (табл 1).
Таблица 1. Таблица истинности оператора логического отрицания
|
x |
not x |
|
0 |
1 |
|
1 |
0 |
Остальные логические операторы являются двухоперандными. Операция логического умножения and имеет следующую таблицу истинности (табл 2):
Таблица 2. Таблица истинности оператора логического умножения
|
x |
y |
x and y |
|
0 |
0 |
0 |
|
0 |
1 |
0 |
|
1 |
0 |
0 |
|
1 |
1 |
1 |
Результат этой операции имеет истинное значение, тогда и только тогда когда оба операнда истинных. Напротив результат оператора логического сложения истинным является в случае, если хотя бы один операнд является истинным (табл. 3):
Таблица 3. Таблица истинности оператора логического сложения
|
x |
y |
x or y |
|
0 |
0 |
0 |
|
0 |
1 |
1 |
|
1 |
0 |
1 |
|
1 |
1 |
1 |
Наконец операция логического исключающего или представляется следующей таблицей истинности (табл 4):
Таблица 4. Таблица истинности оператора логического исключающего ИЛИ
|
x |
y |
x xor y |
|
0 |
0 |
0 |
|
0 |
1 |
1 |
|
1 |
0 |
1 |
|
1 |
1 |
0 |
В языке C/C++ в отличие отOPиVBлогические операторы синтаксически реализованы в виде символов: ! – логическое отрицание, && – логическое умножение, | | – логическое сложение и ^ – логическое исключающее ИЛИ. Например:
x = 100;
bSwitch = not(x < 10);
Подробно рассмотрим синтаксические особенности реализации управляющей структуры выбора в языках программирования.
Реализация управляющих структур выбора в vb
В VB определены несколько операторов реализующих различные варианты структуры выбора. Наиболее простым оператором ветвления является оператор IF…THEN, который имеет следующий формат:
If <condition> Then
<Statements>
End If
Лексический элемент <condition> – представляет собой выражение или переменную, возвращающее логическое значение, а <statements> – оператор или блок операторов.
Несмотря на то, что в VB в явном виде отсутствуют операторные скобки, однако они реализованы неявно в каждом структурном операторе. Для этого любой структурный оператор в VB ограничивается «снизу» специальными завершающими ключевыми словами. Для оператора IF…THENтакими ключевыми словами являются лексическая связкаENDIF.
Действие оператора IF…THEN приводит к выполнению блока операторов <statements> внутри структуры, в случае если выражение <condition> возвращает истинное булевское значение. Например:
x = 33
If x > 10 Then
x = x + 10
y = x + 5
End If
Второй оператор ветвления типа IF…THEN…ELSE служит для реализации алгоритмической структуры, в которой имеется несколько блоков операторов, один из которых будет выполнен. Общая структура оператора может быть представлена в виде:
If <condition_1> Then
<Statements>
[ElseIf <condition_2> Then]
.
.
.
[ElseIf <condition_n> Then
[<Statements_n>]]
[Else
[<Statemens>]]
End If
При исполнении оператора сначала обрабатывается выражение <condition_1>, если оно возвращает ложное булевское значение, то проверяется <condition_2> и так далее до тех пор, пока не будет найдено условное выражение возвращающее истинное значение. После этого будет выполнен соответствующий блок операторов. Если не нашлось ни одного верного условного выражения будет выполнен операторный блок, следующий за ключевым словомELSE. Например:
If x >= 0 and x < 10 Then
y = Sin(x)
ElseIf x >= 10 and x < 15 Then
y = Cos(x)
ElseIf x >= 15 and x < 20 Then
y = Cos(x)/sin(x)
Else
y = x^2
End If
Наконец, VBпредоставляет в распоряжение управляющую структуру типа SELECT … CASE альтернативную операторуIF…THEN…ELSE для выбора исполняемого блока операторов из нескольких. Этот оператор имеет меньше возможностей, но позволяет сделать код программы более удобочитаемым. Формат оператора имеет вид:
Select Case <testexpression>
[Case <expressionlist1>
[<statementblock_1>]]
[Case <expressionlist2>
[<statementblock_2>]
.
.
.
[Case Else
[<statementblock_2>]]
End Select
В начале этого оператора, после ключевых слов SELECTCASE,следует выражение <testexpression>, которое возвращает числовое или булевское значение. За ключевым словомCASE указывается список значений <expressionlist1>, совпадение элемента которого со значением <testexpression> определяет выполнение операторного блокаCASE. Последний пример с использованием оператораSELECT CASE будет иметь вид:
Select Case Index
Case 0
y = Sin(x)
Case 1
y = Cos(x)
Case 2
y = Cos(x)/sin(x)
Case Else
y = x^2
End Select
