Приоритеты выполнения операций
Лабораторная работа №4
Строковые операторы VBA и операторы сравнения
Дома:
Внимательно изучить методические указания.
2. Выполнить задания 1 и 4.
3. Подготовить ответы на контрольные вопросы.
Повторить материал лекции №1 «Основы алгоритмизации», вопрос «Графический способ представления алгоритмов-блок-схемы».
Операторы сравнения
Таблица.1. Операторы сравнения VBA
Оператор
| Синтаксис
| Описание
| =
| A = B
| Равенство: Если А равно В, то - True. Иначе - False
| <
| A < B
| Меньше: Если А меньше В, то - True. Иначе - False
| <=
| A <= B
| Меньше или равно: Если А меньше или равно В, то - True. Иначе - False
| >
| A > B
| Больше: Если А больше В, то - True. Иначе - False
| >=
| A >= B
| Больше или равно: Если А больше или равно В, то - True. Иначе - False
| <>
| A <> B
| Не равно: Если А не равно В, то - True. Иначе - False
|
Задание №1 на дом: выучить содержимое таблицы 1.
Обычно операции сравнения используются в операторах организации циклов для принятия какого-либо решения о дальнейшем ходе выполнения операций.
Результатом любой операции сравнения является значение типа Boolean: True, False.
Если оба операнда в выражении сравнения имеют один и тот же тип данных, VBA выполняет простое сравнение для этого типа.
Если оба операнда в выражении сравнения имеют определенные типы и эти типы не являются совместимыми, VBA выдает сообщение об ошибке несовпадения типов.
Если один или оба операнда в выражении сравнения являются переменными типа Variant, VBA пытается преобразовать тип Variant в какой-либо совместимый тип.
Сравнение строк
При сравнении строк операторами отношения, VBA сравнивает каждую строку слева направо посимвольно.
В VBA одна строка равна другой только, когда обе строки содержат точно такие же символы в точно таком же порядке и обе строки имеют одну и ту же длину. Например, строки "абвгд" "абвгд " " абвгд" не равны между собой, т.к. VBA не игнорирует начальные или конечные символы пробела при сравнении строк.
Следует быть внимательным при сравнении строк переменной длины.
Двоичное и текстовое сравнение строк
Для сохранения текста компьютер использует схему, в которой каждый отображаемый символ имеет уникальный номер. Все буквы алфавита имеют свои уникальные номера. Обычно буквы верхнего регистра имеют меньшие номера, чем буквы нижнего регистра. Число, соответствующее определенной букве или символу, называется кодом символа.
При выполнении двоичного сравнения строковой информации VBA использует бинарный эквивалент числа для каждого символа. Такой метод сравнения называется двоичным или бинарным и является методом сравнения по умолчанию.
Т.к. буквы верхнего регистра имеют меньшие двоичные номера, буквы верхнего регистра располагаются в алфавитном порядке перед буквами нижнего регистра. Поэтому при двоичном сравнении строк, строка "АБВ" будем меньше строки "абв".
При текстовом сравнении строк VBA не использует двоичный эквивалент символов, и не "различает" верхнего и нижнего регистра. В текстовом сравнении строка "абв" равна строке "АБВ".
Для выбора метода сравнения строк используется директива Option Compare
Option Compare [Text | Binary]
Данная директива должна находиться в области объявления модуля.
Конкатенация строк
Присоединение одной строки к другой называется конкатенацией строк.
Конкатенацию строк обычно используют для формирования строк из различных источников в процедуре, чтобы создавать сообщение для вывода на экран. В VBA имеется два оператора для конкатенации строк.
Оператор конкатенации (&)
Оператор (&) в VBA используется только для конкатенации строк.
Синтаксис
Операнд_1 & Операнд_2 [& Операнд_3..]
Операнд_N - любое допустимое строковое или численное выражение (которое преобразуется в строковое).
Тип данных результата конкатенации строк - String.
Если операнд в выражении конкатенации строк имеет значение Empty или Null, VBA интерпретирует этот операнд как строку нулевой длины (строка не содержащая символов).
Обратите внимание! Символ (&) операции конкатенации обязательно необходимо отделять пробелом от имени переменной, т.к. в противном случае VBA может интерпретировать этот символ как символ определения типа Long.
Оператор сложения в конкатенации строк
Для конкатенации строк можно также использовать оператор (+).
Этот оператор имеет такой же синтаксис и требования, как и оператор (&). Однако следует понимать, что в VBA основное предназначение оператора (+) - это арифметическое сложение. Поэтому, чтобы избежать двусмысленности чтения программного кода, для конкатенации строк настоятельно рекомендуется использовать именно оператор (&).
Задание №2 в компьютерном классе: создать в VBA макрос, представленный на рисунке 1.
Для этого:
Создайте документ или книгу Лаб_Раб_4 в MS Word или в Excel,
Сохраните документ на рабочем столе,
Войдите в редактор VBA, например через меню Сервис-Макрос
Выбрав в разделе Project созданного документа раздел ThisDocument, введите программный код,
Проверьте правильность выполнения макроса,
Проверьте себя на понимание каждой строчки кода,
Сохраните файл Лаб_Раб_4 в в своей папке на сервере.
Рис.1. Оператор конкатенации
Задание №3. В MS Word составьте блок-схему алгоритма программы представленной на рисунке 1.
Приоритеты выполнения операций
Многие из выражений в программной коде являются сложными (составными), т.е. состоят из двух или более выражений.
При вычислении сложных выражений VBA следует следующим правилам:
- Части выражения, заключенные в круглые скобки, всегда вычисляются в первую очередь;
- Конкретные операции выполняются в зависимости от иерархии операторов (таблица ниже);
- При равенстве иерархии операторов, они вычисляются слева направо.
Таблица.2. Приоритеты выполнения операций VBA
Оператор
| Комментарии
| ^
| Возведение в степень, высший приоритет
| -
| Унарный минус
| * /
| Умножение и деление имеют равные приоритеты
| \
|
| MOD
|
| + -
| Сложение и вычитание имеют равные приоритеты
| &
| Конкатенация строк выполняется после арифметических операций перед операциями сравнения и логическими операциями
| < <= = >= > <>
| Все операции сравнения имеют равные приоритеты и выполняются слева направо. Для группирования операций надо пользоваться круглыми скобками
|
Задание №4 на дом: выучить содержимое таблицы 2.
Контрольные вопросы
- 1.Опишите оператор Равенство (по таблице 1).
- Опишите оператор Меньше (по таблице 1).
- Опишите оператор Меньше или равно (по таблице 1).
- Опишите оператор Больше или равно (по таблице 1).
- Опишите оператор Больше (по таблице 1).
- Опишите оператор Не равно (по таблице 1).
- Как VBA сравнивает строки?
- Опишите оператор конкатенации.
- Какие операторы можно использовать для конкатенации строк?
- Каким правилам следуют при вычислении сложных выражений VBA?
- Какие приоритеты выполнения операций в VBA (по таблице 2)?
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|