Реализация разветвляющихся алгоритмов

Функции времени и даты

В VBA имеются следующие основные функции времени и даты.

 

Функция Возвращаемое выражение
Date Возвращает значение типа Variant (Date), содержащее текущую системную дату
Time Возвращает значение типа Variant (Date), содержащее текущее время по системным часам компьютера
Now Возвращает значение типа Variant (Date), содержащее текущую дату и время по системному календарю и часам компьютера

 


 

 

Алгоритм называется разветвляющимся, если последовательность выполнения шагов алгоритма изменяется в зависимости от выполнения некоторых условий.

Условие – это логическое выражение, которое может принимать одно из двух значений: “ДА” – если условие верно (истинно, TRUE), и “НЕТ” – если условие неверно (ложно, FALSE).

Разветвляющиеся алгоритмы реализуются с применением условных операторов (операторов выбора), которые используются в программе для реализации условных алгоритмических конструкций, которые вызывают выполнение различных частей программы в соответствии с условиями, существующими на момент выполнения этих операторов. В VBA есть два основных условных оператора: операторы условия If ... Then и переключатели Select Case.

7.1. Условный оператор If … Then

 

 

Да Нет

 

Синтаксис составного условного оператора, если Вы пишите программу структурно, следующий:

 

If <логическое выражение> Then

P1

P2

.

.

PN

Else

M1

M2

.

.

MN

End If

 

Возможна и другая запись (в одну строку):

 

If <лог. выраж.> Then P1 : P2 : ... : PN Else M1 : M2 : ... MN

 

где If, Then, Else, End If - зарезервированные слова, а P1, P2,PN, M1, M2,MN – операторы.

Если Логические выражение принимает значение True, то выполняется инструкция (оператор, или инструкции, операторы) после Then, если False, то выполняется инструкция (или инструкции) после Else. Ветвь Else является необязательной.

Рассмотренная конструкция If … Then позволяет сделать выбор между двумя альтернативами. Если ситуация допускает более чем два взаимоисключающих вывода, то необходимо подумать о более сложной конструкции, например о вложенных условиях (когда одна конструкция If … Then вкладывается в другую конструкцию If … Then), либо о построении конструкции с ключевым словом Elseif, которое позволяет создавать сложные условия.

Демонстрируется выполнение практического задания

 

7.2. Вложенные конструкции для принятия решений с использованием условного оператора If … Then

Синтаксис вложенной конструкции составного условного оператора If … Then следующий:

 

If <логическое выражение> Then

If <логическое выражение> Then

P1

P2

.

.

PN

Else

S1

S 2

End If

Else

M1

M2

.

.

MN

End If

 

Хотя операторы if могут быть вложены любое число раз, лучше сводить их вложенность до минимума, поскольку даже при аккуратно проставленных отступах бывает нелегко понять, какому именно оператору if принадлежат различные части then и else.

 

7.3. Многозначные ветвления If … Then

 

 


 

 

Да Нет

 

 

Да Нет

 

Да Нет

 

 

Синтаксис многозначных ветвлений, если Вы пишите программу структурно, следующий:

 

If <лог. выражение1> Then

P1

ElseIf <лог. выражение2> Then

P2

ElseIf <лог. выражение3> Then

P3

Else

P4

End If

 

Возможна и другая запись (в одну строку):

 

If <лог. выражение1> Then P1 ElseIf <лог. выражение2> Then P2 ElseIf <лог. выражение3> Then P3 Else P4

 

где If, Then, Else, End If - зарезервированные слова, а P1, P2,P3 P4,- операторы

Алгоритм работы такой конструкции следующий:

– если логическое выражение 1 истинно, то выполняется оператор P1 (или блок операторов), следующий за конструкцией Then, а остальные операторы пропускаются;

– если логическое выражение 1 ложно, то оператор P1 пропускается и анализируется логическое выражение 2, следующее за ElseIf. Если оно истинно, то выполняется оператор P2 (или блок операторов), следующий за Then, а остальные операторы пропускаются;

– оператор P4 (или блок операторов), следующий за последним Else, выполняются лишь в том случае, если ложны все логические выражения в конструкциях If.

Демонстрируется выполнение практического задания