Основная страница

Глава 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';



Перейти  к оглавлению: Описание встроенного языка

Hosted by uCoz