Server for Information Technologies
Сервер поддерживается
Центром Информационных Технологий
(095) 932-9212, 932-9213, 939-0783
E-mail: info@citforum.ru
Сервер Информационных Технологий содержит море(!) аналитической информации

ГЛАВА 5 - ОПЕРАТОРЫ ПРИСВОЕНИЯ

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

Простые операторы присвоения

       назначение = источник

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

Знак = присваивает значение ИСТОЧНИКа НАЗНАЧЕНИЮ; помещает значение выражения - ИСТОЧНИКа в переменную - НАЗНАЧЕНИЕ. Если ИСТОЧНИК и НАЗНАЧЕНИЕ являются разными типами данных, то результат зависит от Правил Преобразования Данных.

Пример:

   Name = 'JONES'             !Variable = string constant
   PI = 3.14159               !Variable = numeric constant
   Cosine = SORT(1-Sine*Sine) !Variable = functi on return value
   A = B + C + 3              !Variable = numeric expressio
Name = CLIP(FirstName) &' '   Initial &'. '& LastName
                              !Variable = string expression

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

Операторы присвоения-операции

     назначение += источник
     назначение -= источник
     назначение *= источник
     назначение /= источник
     назначение ^= источник
     назначение %= источник

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

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

Пример:

  Оператор присваивания     Функциональный эквивалент
         A += 1                  A = A + 1
         A -= B                  A = A - B
         A *= -5                 A = A * (-5)
         A /= 100                A = A / 100
         A ^= I+1                A = ^(I + 1)
         A %= 7                  A = A % 7

CLEAR (очистить переменную)

      CLEAR(метка[,n])

метка Метка переменной.
n Числовая константа; 1 или -1. Этот параметр задает значение, которым инициализируется переменная. Если n=1, то переменная получает максимально возможное для этого типа данных значение. Для STRING, PSTRING и CSTRING, это ASCII 255. Если n=-1, то переменная получает минимально возможное для данного типа данных значение. Для STRING, PSTRING и CSTRING это ASCII 0.

Оператор CLEAR очищает переменную, указанную МЕТКой. Если n пропущено, то числовые переменные сбрасываются в нуль, а строки заполняются пробелами. Если метка принадлежит структуре GROUP, RECORD или QUEUE, то все переменные в этой структуре очищаются. Если переменная имеет атрибут DIM, то очищается целиком массив. Одиночный элемент массива не может быть очищен.

Пример:

   CLEAR(Count)        !Clear a variable
   CLEAR(Cus:Record)   !Clear the record structure
   CLEAR(Amount,l)     !Clear variable to highest possible value
   CLEAR(Amount,-I)    !Clear variable to lowest possible

ПРАВИЛА ПРЕОБРАЗОВАНИЯ ДАННЫХ

Язык Clarion производит автоматическую конверсию типов данных. Тем не менее, некоторые вариации могут породить несоответствие источника и назначения (source & destination). Присвоение "выходящего-за-рамки" значения приводит к непредсказуемым результатам

Типы данных PSTRING и CSTRING обрабатываются так же, как STRING, потому что они преобразуются в промежуточные значения типаSTRING для всех операций. Типы DATE и TIME преобразуются в Кларионовские Стандартные Дату и Время и обрабатываются как LONG.

Ниже приведены правила преобразования данных из ИСТОЧНИКа в НАЗНАЧЕНИЕ:

     BYTE = SHORT
     BYTE = USHORT
     BYTE = LONG
     BYTE = ULONG

Знаковый бит ИСТОЧНИКа игнорируется. НАЗНАЧЕНИЕ получает младшие 8 бит ИСТОЧНИКа.

     BYTE = DECIMAL
     BYTE = PDECIMAL
     BYTE = REAL
     BYTE = SREAL

Знаковый бит ИСТОЧНИКа игнорируется. НАЗНАЧЕНИЕ получает младшие 8 бит ИСТОЧНИКа. Дробная часть ИСТОЧНИКа отсекается.

     BYTE = STRING
     BYTE = CSTRING
     BYTE = PSTRING

Если в строке только цифры, то НАЗНАЧЕНИЕ получает их значение.

     SHORT = BYTE
НАЗНАЧЕНИЕ получает значение ИСТОЧНИКа.
     SHORT = USHORT
     SHORT = LONG
     SHORT = ULONG

НАЗНАЧЕНИЕ получает знак и младшие 15 бит ИСТОЧНИКа.

     SHORT = DECIMAL
     SHORT = PDECIMAL
     SHORT = REAL
     SHORT = SREAL

НАЗНАЧЕНИЕ получает знак и младшие 15 бит ИСТОЧНИКа. Дробная часть ИСТОЧНИКа отсекается.

     SHORT = STRING
     SHORT = CSTRING
     SHORT = PSTRING

ИСТОЧНИК должен быть набором цифр БЕЗ знаков форматирования. НАЗНАЧЕНИЕ получает знак и целую часть числа. Дробная часть ИСТОЧНИКа отсекается, хвостовые пробелы игнорируются.

     USHORT = BYTE
НАЗНАЧЕНИЕ получает значение ИСТОЧНИКа.
     USHORT = SHORT
     USHORT = LONG
     USHORT = ULONG
НАЗНАЧЕНИЕ получает младшие 16 бит ИСТОЧНИКа. Знак ИСТОЧНИКа игнорируется.
     USHORT = DECIMAL
     USHORT = PDECIMAL
     USHORT = REAL
     USHORT = SREAL

НАЗНАЧЕНИЕ получает младшие 16 бит из целой части ИСТОЧНИКа. Дробная часть ИСТОЧНИКа отсекается и знак игнорируется.

     USHORT = STRING
     USHORT = CSTRING
     USHORT = PSTRING

ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает целую часть числа. Дробная часть ИСТОЧНИКа отсекается, а знак и хвостовые пробелы игнорируются.

     LONG = BYTE
     LONG = SHORT
     LONG = USHORT
     LONG = ULONG
НАЗНАЧЕНИЕ получает знак и значение ИСТОЧНИКа.
     LONG = DECIMAL
     LONG = PDECIMAL
     LONG = REAL
     LONG = SREAL

НАЗНАЧЕНИЕ получает знак и младшие 31 бит ИСТОЧНИКа. Дробная часть ИСТОЧНИКа отсекается.

     LONG = STRING
     LONG = CSTRING
     LONG = PSTRING

ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак и целую часть числа. Десятичная часть ИСТОЧНИКа отсекается, а хвостовые пробелы игнорируются.

     DATE = BYTE
     DATE = SHORT
     DATE = USHORT
     DATE = ULONG

НАЗНАЧЕНИЕ получает значение ИСТОЧНИКа в виде Кларионовской Стандартной Даты.

     DATE = DECIMAL
     DATE = PDECIMAL
     DATE = REAL
     DATE = SREAL

НАЗНАЧЕНИЕ получает младшие 31 бит ИСТОЧНИКа в виде Кларионовской Стандартной Даты. Десятичная часть ИСТОЧНИКа отсекается.

     DATE = STRING
     DATE = CSTRING
     DATE = PSTRING

ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает целую часть числа как Кларионовскую Стандартную Дату. Дробная часть ИСТОЧНИКа отсекается, а хвостовые пробелы игнорируются.

     TIME = BYTE
     TIME = SHORT
     TIME = USHORT
     TIME = ULONG

НАЗНАЧЕНИЕ получает значение источника как Клaрионовское Стандартное Время.

     TIME = DECIMAL
     TIME = PDECIMAL
     TIME = REAL
     TIME = SREAL

НАЗНАЧЕНИЕ получает младшие 31 бит ИСТОЧНИКа как Кларионовское Стандартное Время. Дробная часть ИСТОЧНИКа отсекается.

     TIME = STRING
     TIME = CSTRING
     TIME = PSTRING

ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает целую часть ИСТОЧНИКа в виде Кларионовского Стандартного Времени. Дробная часть отсекается, а хвостовые пробелы игнорируются.

     ULONG = BYTE
     ULONG = SHORT
     ULONG = USHORT
     ULONG = LONG

НАЗНАЧЕНИЕ получает младшие 32 бита ИСТОЧНИКа. Знак ИСТОЧНИКа игнорируется.

     ULONG = DECIMAL
     ULONG = PDECIMAL
     ULONG = REAL
     ULONG = SREAL

НАЗНАЧЕНИЕ получает младшие 32 бита от целой части ИС- ТОЧНИКа. Дробная часть отсекается, а знак игнорирует- ся.

     ULONG = STRING
     ULONG = CSTRING
     ULONG = PSTRING

ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает целую часть числа. Дробная часть отсекается, а знак и хвостовые пробелы игнорируются.

     REAL = BYTE
     REAL = SHORT
     REAL = USHORT
     REAL = LONG
     REAL = ULONG

НАЗНАЧЕНИЕ получает как всю целую часть, так и знак ИСТОЧНИКа.

     REAL = DECIMAL
     REAL = PDECIMAL
     REAL = SREAL

НАЗНАЧЕНИЕ получает знак, целую и дробные части ИСТОЧНИКа.

     REAL = STRING
     REAL = CSTRING
     REAL = PSTRING

ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак, целую и дробную части числа. Хвостовые пробелы игнорируются.

     SREAL = BYTE
     SREAL = SHORT
     SREAL = USHORT
     SREAL = LONG
     SREAL = ULONG

НАЗНАЧЕНИЕ получает знак и значение ИСТОЧНИКа.

     SREAL = DECIMAL
     SREAL = PDECIMAL
     SREAL = REAL

НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧНИКа.

     SREAL = STRING
     SREAL = CSTRING
     SREAL = PSTRING

ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак, целую и дробную части числа. Хвостовые пробелы игнорируются.

     DECIMAL = BYTE
     DECIMAL = SHORT
     DECIMAL = USHORT
     DECIMAL = LONG
     DECIMAL = ULONG
     DECIMAL = PDECIMAL

НАЗНАЧЕНИЕ получает знак и значение ИСТОЧНИКа.

     DECIMAL = REAL
     DECIMAL = SREAL

НАЗНАЧЕНИЕ получает знак и целую часть ИСТОЧНИКа, а так же старшие биты дробной части. Самая старшая часть дробной части (?) округляется в НАЗНАЧЕНИИ.

     DECIMAL = STRING
     DECIMAL = CSTRING
     DECIMAL = PSTRING

Источник должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак, целую и дробную части числа. Хвостовые пробелы игнорируются.

     PDECIMAL = BYTE
     PDECIMAL = SHORT
     PDECIMAL = USHORT
     PDECIMAL = LONG
     PDECIMAL = ULONG
     PDECIMAL = DECIMAL

НАЗНАЧЕНИЕ получает знак и значение ИСТОЧНИКа.

     PDECIMAL = REAL
     PDECIMAL = SREAL

НАЗНАЧЕНИЕ получает знак и целую часть ИСТОЧНИКа, а так же старшие биты дробной части. Самая старшая часть дробной части (?) округляется в НАЗНАЧЕНИИ.

     PDECIMAL = STRING
     PDECIMAL = CSTRING
     PDECIMAL = PSTRING

Источник должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак, целую и дробную части числа. Хвостовые пробелы игнорируются.

     STRING = BYTE
     STRING = SHORT
     STRING = USHORT
     STRING = LONG
     STRING = ULONG

НАЗНАЧЕНИЕ получает знак и неформатированное число. В НАЗНАЧЕНИИ, число выравнивается влево.

     STRING = DECIMAL
     STRING = PDECIMAL
     STRING = REAL
     STRING = SREAL

НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧНИКа. В НАЗНАЧЕНИИ, число выравнивается влево.

     CSTRING = BYTE
     CSTRING = SHORT
     CSTRING = USHORT
     CSTRING = LONG
     CSTRING = ULONG

НАЗНАЧЕНИЕ получает знак и неформатированное число. В НАЗНАЧЕНИИ, число выравнивается влево.

     CSTRING = DECIMAL
     CSTRING = PDECIMAL
     CSTRING = REAL
     CSTRING = SREAL

НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧНИКа. В НАЗНАЧЕНИИ, число выравнивается влево.

     PSTRING = BYTE
     PSTRING = SHORT
     PSTRING = USHORT
     PSTRING = LONG
     PSTRING = ULONG

НАЗНАЧЕНИЕ получает знак и неформатированное число. В НАЗНАЧЕНИИ, число выравнивается влево.

     PSTRING = DECIMAL
     PSTRING = PDECIMAL
     PSTRING = REAL
     PSTRING = SREAL

НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧНИКа. В НАЗНАЧЕНИИ, число выравнивается влево.

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


Comments: info@citmgu.ru
Copyright © CIT