3. Типове данни
19
В случаите, когато полученият резултат излиза извън рамките на изброимия тип
(няма съответна константа), резултатът е неопределен или се индицира грешка (в
зависимост от проверката на границите, виж управление на компилацията).
3.1.2. иогически тип
иогическият тип формално може да бъде описан така:
type boolean = (false, true);
Поради това всички функции, определени за изброимия тип, са приложими и за
логическия. Но освен тях над логическия тип са дефинирани и следните операции,
даващи резултат отново от логически тип:
*
NOT - отрицание;
*
AND - конюнкция (логическо и);
*
OR - дизюнкция (логическо или);
*
XOR - изключващо или.
3.1.3. Целочислени типове
В UniPascal има няколко различни целочислени типа, представящи числата в
различни диапазони на множеството на целите числа (за разлика от стандартния Pascal,
в които е дефиниран само типа integer). Всеки два целочислени типа са съвместими
помежду си в общото си сечение.
Целочислените типове са както следва:
*
Integer
-32767..32767
*
ShortInt
-128..127
*
Cardinal
0..65535
*
ShortCard
0..255
*
Natural
0..32767
*
LongInt
-2147483647..2147483647
Над обектите от целочислен тип са определени едноместните операции  +
(унарен плюс) и - (унарен минус - смяна на знака) и следните двуместни операции:
събиране (+), изваждане (-), умножение (*), целочислено деление (div), и остатък от
деление (модул) (mod). Ако двата операнда на операцията имат различни типове, то те
първо се превръщат към минималния тип, включващ и двата диапазона, след което се
извършва операцията.
Освен изброените операции, над всеки целочислен тип са дефинирани и следните
стандартни функции:
*
ABS(x) - абсолютна стойност на аргумента;
*
SQR(x) - аргумента на квадрат (а не корен квадратен!);
*
всички стандартни функции, определени над изброимия тип.
В Pascal съществува стандартната константа MAXINT. Тъй като в UniPascal има
няколко целочислени типа, то е неудобно въвеждането на съответни константи за всеки
тип. За целта може да се използва стандартната (в UniPascal) функция MAX. Например
MAX(INTEGER), MAX(CARDINAL) и т.н.
3.1.4. Диапазонен тип
В много случай е известно, че стойностите на дадена променлива ще се менят
(или по-точно трябва да се менят) само в някакви, предварително известни граници. В
такъв случай е желателно това да бъде съобщено по някакъв начин на компилатора, за
да може той да избере подходящо представяне и да проверява правилността на
<<  <  GO  >  >>

Вернуться к началу сайта