ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 10 ГЛАВА 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 НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧ- НИКа. В НАЗНАЧЕНИИ, число выравнивается влево. |