Лекции.Орг


Поиск:




Примеры использования оператора присваивания




Фрагмент текста программы Результат
  Sub q() Const pi = 3.14 Dim a%, b!, c#, d As Boolean Dim e As Date, f$ a = 1 / 3 b = 1 / 3 c = 1 / 3 d = 1 / 3 e = 1 / 3 f = a & vbCr & b & vbCr & c & _ vbCr & d & vbCr & e & vbCr & pi MsgBox f End Sub
  a=1: b=2: a=b: b=a a=2 b=2
  a=1: b=2: a=a+b: b=a*b a=3 b=6
  a=1: b=2: a=a+b: b=a: a=a=a a=-1(True) b=3
  c=a: a=b: b=c a и b меняются значениями
6 * a=a+b: b=a-b: a=a-b a и b меняются значениями
7 * a=y*2: y=y/x: x=x*x: x=x+y+a x=x*x+y/x+y*2

 

Более подробных комментариев заслуживает пример 1 из таблицы 21. Оператор присваивания здесь задаёт значения переменных a, b, c, d, e, f. Оператор SubEnd Sub задаёт описание подпрограммы-процедуры с именем q, внедрённой в данный электронный документ и запускаемой нажатием следующей кнопки.

Примечание: предполагается, что параметры безопасности Microsoft Office Word разрешают запуск макросов (активного содержимого). Более подробные сведения о выполнении программ в среде VBA можно получить, изучая справочную систему, соответствующую учебную литературу [14], а также выполняя задания лабораторного практикума и делая соответствующие выводы [19, 23].

Оператор Const задаёт значение константы pi, а оператор Dim объявляет переменные, причём все они относятся к разным типам (см. табл. 17). Именно поэтому присваивание разным переменным значения одного и того же выражения приводит к получению совершенно различных результатов.

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

В качестве оператора, отображающего на экране в окне сообщения значение переменной f, выступает функция MsgBox.

Достаточно простые примеры 2 и 3 позволяют лучше понять работу оператора присваивания и заодно закрепить понятие переменной. Особенность примера 4 заключается в последнем операторе a=a=a. Здесь второй знак равенства означает не присваивание, а сравнение, результатом которого в данном случае будет логическое значение «Истина», которому соответствует число -1.

В примерах 5 и 6 выполняется обмен значениями двух переменных а и b, причём в примере 5 это делается с помощью третьей переменной с, а в примере 6 * демонстрируется один из способов, не требующих использования дополнительной переменной. Последовательность операторов присваивания в примере 7 * эквивалентна вычислению выражения, содержащего несколько операций.

 

11.2 Условный оператор IF … THEN

 

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

 

Рис. 11.1. Базовая алгоритмическая структура «Ветвление»

 

Для реализации структуры «Ветвление» (Если – То – Иначе) и её частного случая «обход» (Если – То) в VBA используется так называемый строчный вид оператора IF … THEN. Его синтаксис имеет следующий вид:

 

IF условие THEN операторы_А [ ELSE операторы_В ]

 

В качестве условия (англ. condition) может выступать любое выражение, значение которого расценивается как истина (не ноль) или ложь (ноль). А в качестве операторов А и В – один или несколько, разделённых двоеточиями, операторов. Если опустить часть оператора в квадратных скобках, то будет реализована структура «обход». Приведём пример использования оператора IF … THEN, в котором можно обойтись без комментариев:

 

IF рейтинг < 60 THEN итог = «незачёт» ELSE итог = «зачёт»

 

Блочный вид оператора IF … THEN позволяет, кроме того, реализовать более сложное вложенное ветвление. Синтаксис этого оператора имеет следующий вид:

 

IF условие_1 THEN

[ блок_операторов_1 ]

[ ELSEIF условие_2 THEN

[ блок_операторов_2 ]]

[ ELSE

[ блок_операторов_иначе ]]

END IF

 

В отличие от строчной, блочная форма оператора IF … THEN допускает использование нескольких условий, после каждого из которых следует (необязательный) блок операторов, выполняющийся только в случае истинности соответствующего выражения. Следующее условие проверяется только в случае ложности предыдущего. В случае же истинности одного из условий (и последующего выполнения соответствующего блока операторов) никакие дальнейшие условия блочного оператора IF … THEN уже не проверяются, а выполнение программы продолжается с оператора, следующего за ключевым словом END IF.

Исчерпывающее рассмотрение базовой управляющей алгоритмической структуры «Ветвление» даётся в практикуме [20]. Мы же ограничимся приведением ещё одного примера, комментарии к которому могут быть составлены заинтересованным читателем самостоятельно:

 

IF рейтинг < 55 THEN

итог = «неудовлетворительно»

ELSEIF рейтинг < 70 THEN

итог = «удовлетворительно»

ELSEIF рейтинг < 85 THEN

итог = «хорошо»

ELSE

итог = «отлично»

END IF

 

11.3 Оператор выбора варианта *

 

Разновидность структуры «ветвление» – выбор одного из нескольких блоков – показана на рисунке 11.2. Реализуется эта структура оператором выбора варианта SELECT CASE … END SELECT. Логика работы оператора выбора очень похожа на блочную форму оператора IF … THEN. Также выполняется только один из нескольких блоков операторов (вычислительных процессов). Отличие заключается в том, что все условия выбора связаны с проверкой значения одного общего тест-выражения, а в условиях оператора IF … THEN могут проверяться совершенно независимые значения.

 

Рис. 11.2. Структура «выбор»

 

Приведём синтаксис оператора SELECT CASE … END SELECT, который выполняет один из нескольких блоков операторов (на рис. 11.2 – процессов) в зависимости от значения тест-выражения:

 

SELECT CASE тест_выражение

CASE список_выражений_1

[ блок_операторов_1 ]

[ CASE список_выражений_2

[ блок_операторов_2 ]]

[ CASE ELSE

[ блок_операторов_иначе ]]





Поделиться с друзьями:


Дата добавления: 2015-01-29; Мы поможем в написании ваших работ!; просмотров: 1549 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Лучшая месть – огромный успех. © Фрэнк Синатра
==> читать все изречения...

602 - | 562 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.