Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

ГЛАВА 4 -ВЫРАЖЕНИЯ

Выражения

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

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

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

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

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

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

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

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

Пример:


    -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-коды



        <OEh>

        !Шестнадцатеричный ASCII-код



        'A<< B'

        !Вложенная левая угловая

        скобка, A<B



        '*{20}'

        !12 звездочек в формате

        счетчика повторения



        ''

        !Нулевая (пустая) строка 

Оператор конкатенации (соединения)

Оператор конкатенации & используется для дописывания одной строковой переменной к другой. Длина результирующей строки, это сумма длин обоих конкатенированных значений. Числовые типы данных можно конкатенировать со строками или другими числовыми переменными или константами. Зачастую, стоит использовать функцию CLIP для удаления хвостовых пробелов в строке, к которой подсоединяется другая строка.

Пример:


        CLIP(FirstName) & Initial & & LastName

        !Составляем полное имя 



        'Clarion Software' & ', Inc.'

        !Соединяем две константы

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

Строковые выражения

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

Пример:


        'Adress:'&Cus:Adress 

        !Подсоединяем константу к

        переменной



        Name

        !Строковая переменная



        'Phone:' & '305-' &

        FORMAT(Phone,@P###-##I@itp)

        !Соединяем константы и

        результат функции FORMAT



        Weight & 'Ibs.'

        !Подсоединяем переменную к

        константе

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

Логический оператор сравнивает два операнда или выражения и порождает условия ИСТИНА или ЛОЖЬ. Есть два типа логических операторов: условные и булевы. Условные операторы сравнивают два значения или выражения. Булевы операторы связывают вместе строковые, числовые и/или логические выражения для определения логики true-false (?). Операторы можно комбинировать, для проверки сложных условий.

Условные операторы = Знак равенства
  < Меньше чем
  > Больше чем
Булевы операторы 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.

Назад | Содержание | Вперед

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...