к оглавлению

КЛАРИОH. Справочное руководство

ГЛАВА 5 - Операторы присваивания

Операторы присвоения........................................ 5-1
     Простые операторы присвоения........................... 5-1
     Операторы присвоения-операции.......................... 5-2
     CLEAR (очистить переменную)............................ 5-3

Правила преобразования данных............................... 5-4

		     ОПЕРАТОРЫ ПРИСВОЕНИЯ

----------------------------------------------------------------
  Простые операторы присвоения
================================================================
          назначение = источник
----------------------------------------------------------------

назначение      Должно быть меткой или переменной

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

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

Пример:

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

к оглавлению

Знаете ли Вы, что спецификация - это документ, описывающий соглашение между разработчиками и пользователями. Разработчик берется написать модуль, а пользователь соглашается не полагаться на знания о том, как именно этот модуль реализован, т.е. не предполагать ничего такого, что не было бы указано в спецификации. Такое соглашение позволяет разделить анализ реализации от собственно использования программы. Спецификации дают возможность создавать логические основы, позволяющие успешно "разделять и властвовать".

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution