ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 9


		      ГЛАВА 4 - Выражения

Выражения................................................... 4-1
     Числовые константы..................................... 4-2
     Числовые выражения..................................... 4-3
     Арифметические операторы............................... 4-3
     Строковые константы.................................... 4-4
     Оператор конкатенации.................................. 4-4
     Строковые выражения.................................... 4-5
     Логические операторы................................... 4-6
     Логические выражения................................... 4-7

			   ВЫРАЖЕНИЯ

Выражение - это математическая или логическая формула, порождаю-
щая значение. Выражение может  быть переменной в операторе  при-
сваивания, параметром  процедуры или  функции, индексом  массива
или условием структур IF, CASE, LOOP или EXECUTE.  Выражения мо-
гут содержать константы, переменные и/или обращения к  функциям,
объединенные логическими и/или арифметическими операторами

Выражения вычисляются в стандартном алгераическом порядке опера-
ций. Приоритет операторов управляется типом операторов и  распо-
ложением скобок. Каждая операция производит (внутреннее)  проме-
жуточное значение, используемое в последующих операциях.  Скобки
используются для группирования операций в выражениях.  Выражения
вычисляются от внутренних скобок к внешним.

Операторы, при вычислении выражения, имеют следующие  приоритеты
(от высших к низшим):

Уровень   1      ()            Скобочное группирование
Уровень   1      -             Унарный минус
Уровень   3      вызов функции Получить значение от RETURN
Уровень   4      ^             Возведение в степень
Уровень   5      */%           Умножение,  деление,  остаток  от
                               деления
Уровень   6      + -           Сложение, вычитание
Уровень   7      &             Конкатенация

Выражения  могут  порождать  числовые,  строковые или логические
значение (вычисление true/false).  Выражения могут вовсе  не со-
держать операторов;  они могут  быть одиночной  переменной, кон-
стантой или вызовом функции.

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
  Числовые константы
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН

Числовые константы - это постоянные числовые значения. Они могут
применяться в описаниях данных, в выражениях, как параметры про-
целур или  функцийs или  как атрибуты.  Числовые константы могут
представляться в десятичном, двоичном, восьмеричном,  шестнадца-
теричном или научном  форматах. Символы форматирования,  как на-
пример, знаки доллара или запятые, не разрешены в числовых  кон-
стантах.

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

Пример:

            -924
             76. 346
            -45.026

Двоичные числовые константы могут содержать необязательный  знак
минуса, цифры 0 и 1 и должны заканчиваться символом B или b.

Пример:

             1011b
         -1000110B

Восьмеричные числовые константы содержат необязательный знак ми-
нуса, цифры от 0 до 7 и завершаются символом O или o.

Пример:

             3403o
         -7041312O

Шестнадцатеричные  числовые  константы  содержат  необязательный
знак минуса, цифры от  0 до 9, буквы  от A до F  (представляющие
числа от 10 до 15) и завершающий символ H или h. Если самый пер-
вый символ в шестнадцатиричном числе - буква от A до F, то  надо
перед ней ставить 0 обязательно!

Пример:

          -1FFBh
       0CD1F74FH

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
  Числовые выражения
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН

Числовые выражения могут быть параметрами процедур или  функций,
условиями в структурах IF, CASE, LOOP или EXECUTE или же  источ-
ником в операторе присваивания, где значение выражения  получает
числовая переменная. Числовые выражения могут содержать  арифме-
тические операторы и оператор  конкатенации, но не могут  содер-
жеть логические операторы.

Если в числовых выражениях используются строковые константы  или
переменные, то они предразуются в промежуточные числовые  значе-
ния. Если имеется оператор конкатенации, то промежуточное значе-
ние преобразуется в числовое ПОСЛЕ собственно конкатенации.

Пример:

       3.12159          !Значение ПИ
       Count + 1        !Прибавить 1 к Count
       (1-N*N)/R        !N раз по N ввычитается из 1
                        ! а затем делится на R
       305 & 7854555    !Соединяем код области и телефон

См. также: Правила преобразования данных

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
  Арифметические операторы
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН

Арифметический оператор  арифметически комбинирует  два операнда
для получения промежуточного значения. Это операторы:

 + Сложение             (A+B значит A плюс B)
 - Вычитание            (A-B значит A минус B)
 * Умножение            (A*B значит A раз по B)
 / Деление              (A/B значит A делить на B)
 ^ Возведение в степень (A^B значит A возведено в степень B)
 % Деление по модулю    (A%B значит остаток от деления A на B)

Все  арифметические  операторы  порождают промежуточные значения
типа Long или Real. Тип данных для промежуточного значения опре-
деляется выполняемой операцией и типами операндов. Тем не менее,
деление или  возведение в  степь ВСЕГДА  порождают промежуточные
значения типа Real.

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
  Строковые константы
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
Строковая константа - это набор символов, заключенный в  одиноч-
ные кавычки (апострофы). Символы, которые нельзя ввести с клави-
атцры, можно вставить в  строковую константу, заключив их  ASCII
символьные коды в угловые скобки  < и > . Символьные  коды ASCII
могут быть представлены в десятичной или шестнадцатеричной  фор-
ме.

В строковой  костнате, левая  угловая скобка  < инициирует поиск
правой угловой скобки. Так  что, для того, чтобы  вставить левую
угловую скобку в строку, ее надо ввести дважды. То же справедли-
во и для апострофов -  чтобы ввести в строку апостроф,  его надо
вводить дважды.  Два апострофа  между которыми  либо вообще  нет
символов (либо только пробелы) представляют пустую строку.

Если надо повторить несколько раз один и тот же символ, то стоит
воспользоваться представлением в виде счетчика повторения. Число
раз, которое символ должен повториться, помещается между  фигур-
ными скобками {  и }, которые  ставятся сразу же  за повторяемым
символом.

Пример:

    'string constant'   !Строковая константа
    'It''s a girl!'     !Вложенный апостроф
    '<27,15>'           !Десятичные ASCII-коды
    ''             !Шестнадцатеричный ASCII-код
    'A << B'            !Вложенная левая угловая скобка, A   Больше чем
Булевы операторы         NOT  Логическое НЕ
(логическая арифметика)  ~    Тильда (логическое НЕ)
                         AND  Логическое И
                         OR   Логическое ИЛИ
                         XOR  Логическое ИИЛИ (исключающее ИЛИ)
Комбинированные          <>   НЕ равно
операторы                ~=   НЕ равно
                         NOT= НЕ равно
                         <=   Меньше или равно
                         =<   Меньше или равно
                         ~<   НЕ больше
                         NOT> НЕ больше
                         >=   Больше или равно
                         =>   Больше или равно
                         -<   НЕ меньше
                         NOT< НЕ меньше

При логических вычислениях, любое НЕнулевое значение означает
ИСТИНУ, а пустая строка или нулевое значение означает ЛОЖЬ.

Пример:

Логическое выражение     Результат 
ДДДДДДДДДДДДДДДДДДД-     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

A -  B                   Истина, если A равно B
A <  B                   Истина, если A меньше B
A >  B                   Истина, если A больше B
A <> B,A ~= B, A NOT= B  Истина, если A НЕ равно B
A ~< B,A >= B, A NOT< B  Истина, если A НЕ меньше B
A ~> B,A <= B, A NOT> B  Истина, если A НЕ больше B

~ A, NOT A               Истина, если A постое или ноль
 A AND B                 Истина, если A ИСТИНА и B ИСТИНА
 A OR B                  Истина, если либо A ИСТИНА, либо B ИС-
                           ТИНА, либо оба вместе
 A XOR B                 Истина, если либо A ИСТИНА, либо B ИС-
                           ТИНА, но НЕ оба вместе

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
  Логические выражения
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН

Логические выражения вычисляют условия ИСТИНА-ЛОЖЬ в управляющих
структурах IF, LOOP UNTIL, и LOOP WHILE. Управление передается в
зависимости от конечного резльтата выражения (ИСТИНА или  ЛОЖЬ).
Логические выражения вычисляются  слева направо. Правый  операнд
выражений AND, OR и XOR вычисляется только когда он может повли-
ять на результат. Для избежания неполных сравнений или для изме-
нения порядка вычислений  можно использовать скобки.  Приоритеты
логических операторов таковы:

        Уровень1       Условные операторы
        Уровень2       ~, NOT
        Уровень3       AND
        Уровень4       OR, XOR

Пример:

    LOOP UNTIL EOF(Customer)          !ИСТИНА, если конец файла
                !какие-то операторы
    .
     IF A = B THEN RETURN. !RETURN если A равно B
    LOOP WHILE - Done#     !Повторять пока ЛОЖЬ (Done# = 0)
                !какие-то операторы
    .
    IF A >= B OR (C>B AND E=D) THEN RETURN.!True if a >= b,also
                           ! true if both c > b and e = d.
                           !The second part of the expression
                           ! (after OR) is evaluated only if the
                           ! first part is not true.



Яндекс цитирования