Глава 4 Выражения и оператор присваивания
Выражения
Выражение — это математическая или логическая
формула, по которой вычисляется значение. Математическое выражение может
стоять справа от знака равенства в операторах присваивания, быть параметром
процедур или функций, индексом массива переменных. Логическое выражение может
быть условием в управляющих операторах Если, Пока, Для. Выражения состоят из констант,
переменных и функций, связанных символами логических и/или арифметических
операций.
В языке определены следующие виды
арифметических операций:
сложение |
(Оп1 + Оп2) |
вычитание |
(Оп1 - Оп2) |
умножение |
(Оп1 * Оп2) |
деление |
(Оп1 / Оп2) |
остаток от деления |
(Оп1 % Оп2) |
унарный минус |
(-Оп1) |
Арифметические операции имеют один или два
операнда, в зависимости от типа которых операция имеет ту или иную семантику.
Тот или иной семантический вариант операции определяется по первому операнду.
В случае несовпадения типа второго операнда с требуемым, значение
преобразуется к требуемому типу в соответствии с правилами преобразования
типов. Если тип первого операнда не соответствует ни одному из допустимых
типов, то в зависимости от ситуации может производиться преобразование типов
или возбуждаться состояние ошибки выполнения.
Сложение определено
для следующих типов операндов: |
Число + Число |
|
Дата + Число (к дате
прибавляется число дней) |
Вычитание определено
для следующих типов операндов: |
Число – Число |
|
Дата – Число (от
даты отнимается число дней) |
|
Дата – Дата
(результатом является число дней между датами) |
Умножение: |
Число * Число |
Деление: |
Число / Число |
Остаток от деления: |
Число % Число |
Замечание. При выполнении операции % (остаток от деления) оба операнда операции
округляются до целого значения.
Операция конкатенации (+)
используется для того, чтобы присоединить одну строку к другой. Длина результирующей
строки равна сумме длин соединяемых строк. В случае несовпадения типа данных
второго или последующих операндов со строковым типом, их значение преобразуется
к строковому типу в соответствии с правилами преобразования типов.
Пример:
·
Для того, чтобы удалить ненужные пробелы,
используются системные функции СокрЛ и СокрП.
ФИО = СокрП(Фамилия) + +
СокрП(Имя) + + СокрП(Отчество);
Логическая операция сравнивает операнды и вырабатывает
логическое значение: «истина» или «ложь». Существует два вида логических
операций: операции сравнения и булевы операции. В операциях сравнения
сравниваются два значения. Булевы операции выполняются над логическими
значениями, реализуя булеву алгебру. Символы булевых операций могут
комбинироваться, образуя составные операции.
Операции сравнения:
В языке определены следующие виды операций
сравнения:
больше |
(Оп1 Оп2) |
больше или равно |
(Оп1 = Оп2) |
равно |
(Оп1 = Оп2) |
не равно |
(Оп1 Оп2) |
меньше |
(Оп1 Оп2) |
меньше или равно |
(Оп1 = Оп2) |
Операции сравнения определены для следующих типов
операндов:
Больше |
Число Число |
|
Строка Строка |
|
Дата Дата |
Больше или равно: |
Число = Число |
|
Строка = Строка |
|
Дата = Дата |
Меньше: |
Число Число |
|
Строка Строка |
|
Дата Дата |
Меньше или равно: |
Число = Число |
|
Строка = Строка |
|
Дата = Дата |
Равно: |
Число = Число |
|
Строка = Строка |
|
Дата = Дата |
|
АгрегатныйТип =
АгрегатныйТип |
Не равно: |
Число Число |
|
Строка
Строка |
|
Дата Дата |
|
АгрегатныйТип
АгрегатныйТип |
Булевы операции:
В языке определены следующие виды булевых
операций:
И или AND |
конъюнкция (булево
И) |
ИЛИ или OR |
дизъюнкция (булево
ИЛИ) |
НЕ или NOT |
логическое отрицание
(булево отрицание НЕ) |
Константа числового типа представляется в
виде:
[‘+’|
‘-’]{‘0’|’1’|’2’|’3’|’4’|’5’|’6’|’7’|’8’|’9’}[.{‘0’|’1’|’2’|’3’|’4’|’5’|’6’|’7’|’8’|’9’}]
Пример:
0 123 -15 +24.11 0.245
Дата задается в формате 'ДД.ММ.ГГ' или
'ДД.ММ.ГГГГ' (дата заключается в одиночные кавычки). Неопределенная дата
задается как '00.00.00'.
Пример:
'12.04.95' '01.01.1996'
Константа строкового типа представляется как
любая последовательность символов, заключенных в двойные кавычки.
Пример:
Ура заработала
Это самая правильная строка
Кроме того, допускаются «многострочные»
строковые константы. В исходном тексте многострочные константы могут
задаваться двумя способами:
·
Первый вариант: В данном случае между
фрагментами, представляющими отдельные строки многострочной константы, не
должно встречаться никаких символов, за исключением пробелов, переводов строки
и строк комментариев.
Пример:
Стр = Первая строка // пример строковой константы
Вторая строка
Третья строка;
·
Второй вариант: В данном примере значение
константы полностью идентично предыдущему примеру. Отличие заключается в том,
что каждая отдельная составляющая не замыкается кавычками, а на каждой последующей
строке помещен символ переноса строки |. В этом варианте комментарии
между открывающей и закрывающей кавычками не допускаются.
Пример:
Стр = Первая строка
|Вторая строка
|Третья строка;
Строковые выражения могут использоваться в
качестве параметров методов, процедур и функций, либо в правой части оператора
присваивания. Строковым выражением может быть отдельная строка или сложное
сочетание строковых констант, функций и операций. То, что выражение является
строковым, определяется по первому операнду. В случае несовпадения типа второго
и последующих операндов со строковым типом, их значения преобразуются к требуемому
типу в соответствии с правилами преобразования типов. Чтобы указать, что
выражение является строковым, можно, например, начинать его с пустой строки
символов .
Пример:
Стр = СокрП(Фамилия +
, + Имя + , + отчество);
Стр1 = + Докум.Цена +
Валюта.СокрНаим;
В логических выражениях происходит вычисление
логического значения (истина/ложь). Обычно логические выражения используются в
управляющих операторах, в которых на основании результата логического выражения
определяется дальнейшая последовательность выполнения программы. Логические
выражения вычисляются слева направо. Для того, чтобы избежать неоднозначности
и управлять последовательностью операндов, следует применять круглые скобки.
Уровни старшинства логических операций:
Уровень 1 |
операнды,
заключенные в скобки |
Уровень 2 |
NOT |
Уровень 3 |
AND |
Уровень 4 |
OR |
Пример:
Стр = Угадал!;
а = ВвестиСтроку(Стр, Назови
пароль!, 15);
Если (а=1) И ((Стр =
пароль) ИЛИ (Стр = Пароль)) Тогда
Сообщить(Стр);
КонецЕсли;
Оператор присваивания
Синтаксис:
Назначение = Источник;
Параметры:
Назначение |
В качестве Назначения может
выступать простая переменная, элемент массива, атрибут агрегатного типа
данных (который допускает запись). Элемент массива задается как
Имя_массива[Индексное_выражение]. |
Источник |
Выражение. |
Описание:
Оператор присваивания (символ =)
означает присваивание значения Источник переменной, обозначенной как Назначение.
Пример:
А = В;
Стр1 = 777;
ДатаДок = '14.04.96';
Содержание раздела