Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 3. Основні елементи мови Caché Object Script-рус.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
55.42 Кб
Скачать

2. Операторы и выражения

COS поддерживает следующие группы операторов:

- Унарные арифметические и логические операторы;

- Бинарные арифметические операторы;

- Логические операторы;

- Операторы работы со сроками.

К унарным арифметическим операторам относятся «+» и «-», которые обеспечивают числовую интерпретацию операнда, например, «+123» и «-123».

Унарный положительный оператор не влияет на значение выражения, то есть не меняет знак.

Например,

Set x = -23

Write "x:" x ,! // -23

Write "+ x:" + x ,! // -23

В Caché также существует унарный логический оператор «'»

К бинарным арифметическим операторам относят:

«+» - Добавление;

«-» - Вычитание;

"*" - Умножение;

"/" - Деление;

"\" - Целочисленное деление;

"#" - остаток от деления;

«**» - Степень числа.

Пусть а = 5, b = 7, с = 10.

Выражение

Значение

а + b

12

а * b – с

25

с / а

2

2 + а * b

49

2 + (а * b)

37

3700 # 3600

100

с # а

0

9.123 \ 1

9

3700 \ 3600

1

2 ** 5

32

9 ** .5

3

16 ** .25

2

4 ** (-2)

.0625

К логическим операторам относят:

«=» - Проверка на равенство;

«'=» - Проверка на неравенство;

Если нужно провести проверку на числовую (не) равенство, то сначала нужно интерпретировать это выражение в число, например, используя знак «+».

Пусть у = 12, z = 15:

Выражение

Значение

y < z

1

z > "16abc"

0

«[» - Содержит, оператор определяет, содержится ли правое выражение в левом;

"'[" - не содержится;

«]» - Следует за, оператор определяет, следует ли левый операнд за правым в лексикографической последовательности;

«']» - Не следует за;

«]]» - Сортируется за, оператор определяет, сортируется ли левый операнд по правому в лексикографической последовательности (нулевая строка идет первой, затем числа по порядку с отрицательных, пустой текст, положительные числа, в конце нечисловые значения);

«']]» - Не сортируется за;

«>» - Более чем;

«'>» - Не более чем;

«<» - Менее чем;

«'<» - Не менее;

«&» - Логическое И;

«» - Логическое ИЛИ;

«&&» - Логическое И;

«||» - Логическое ИЛИ;

Последние два оператора отличаются от предыдущей пары тем, что оба пропускают расчет правого операнда, если расчет левого уже дает конечный результат.

Например, когда вычисления левого операнда возвращает False в операции I или True в операции ИЛИ.

Например, пусть х ­= 3, у ­= "А", z =­ "3.0".

Выражение

Значение

х = "а"

0 (False)

x=z

0 (False)

"АВС"[у

1 (True)

x]y

0 (False)

z] (x = у)

1 (True)

2]]19

0 (False)

К операторам работы со сроками относят:

_ - Конкатенация срок;

? - Сравнение с шаблоном.

Пусть х = "12".

Выражение

Значение

"АВ" _ "CD"

ABCD

"АВ" _ х

АВ12

х_"А"[2

1

Примечание 1. Последовательность выполнения операторов в COS всегда слева направо; в пределах выражения операции производятся в той последовательности, в которой они записаны. Для того, чтобы изменить порядок выполнения операций нужно использовать скобки.

Например,

Set TorF = ((4 + 7)> (6 + 6)) // False (0)

Set Value = (4 + 7 > 6 + 6) // 7

Примечание 2. В случае, когда строка используется как арифметическое выражение, она интерпретируется как число. Числовое значение получается с помощью сканирования сроки слева направо в поиске цифр, которые формируют числовой литерал. Сканирование продолжается пока не будет достигнуто первого нецифровой символа. Полученные знаки интерпретируются как число, значение которого используется в выражении. Если в начале сроки не стоят цифры, то числовое значение сроки = 0.

Например:

Set x1 = "3 blind mice" //3

Set x2 = "3.14 roughly equals Pi." //3.14

Set x3 = "4e2 is four-hundred." //400

Set x4 = "-4.2e2 is negative 420." //-420

Set x5 = "22 East 3rd Street" //22

Set x6 = "22E3St." //22000

Set x7 = "To be or not to be" //0

Write "4 Motorcycles" + "5 bicycles" // 9

Write -"2Cats"_"Rats" // -2Rats