34. Структуры данных. Порядковые типы, совместимость типов.
1) Порядковые типы
Все стандартные типы, кроме вещественных типов, а так же перечисляемый и интервальный типы относятся к порядковым типам.
У порядковых типов значения ограничены (кол-во значений).
К порядковым типам можно применять след. ф-ции:
-
PRED(A) – возвращает предыдущее значение (если оно сущ-ет для аргумента А)
-
SUCC(A) – возвращает последующее значение (если оно сущ-ет для аргумента А)
Пр.: PRED(5) = 4; SUCC(5) = 6
PRED(F) = Е; SUCC(F) = G
PRED(TRUE) = FALSE; SUCC(FALSE) = TRUE.
Значения порядковых типов можно сравнивать между собой, используя (символы) операции сравнения: <, >, =, =>, <=.
Если PRED(A) = B, то А>B.
-
Совместимость типов.
Turbo Paskal явл-ся типизированным языком, построенным на строгом соблюдении концепции типов.
В соответствии в этой концепцией все операции языка определены только над операндами совместимых типов.
В операциях сравнения 2 типа явл-ся совместимыми, если соблюдается хотя бы одно из след. условий:
-
Оба типа явл-ся одинаковыми;
-
Оба типа явл-ся вещественными;
-
Оба типа явл-ся целочисленными;
-
Один тип явл-ся под диапазоном другого: Пр.: D: 10..100;
-
Оба типа явл-ся под диапазонами одного и того же основного типа: Пр.: D: 1..100;
C: 1..5.
В операциях присваивания, например Т1:=Т2, 2 типа явл-ся совместимыми, если соблюдается хотя бы одно из след. условий:
-
Оба типа тождественны (т.е. одинаковы);
-
Оба типа явл-ся совместимыми порядковыми типами и значение второго (для Т2) попадает в диапазон возможных значений первого (Т1);
Пр.: D: 1..100;
C: 1..5.
D:=C (наоборот нельзя)!!!
-
Оба типа явл-ся вещественными типами. Значения второго типа (для Т2) попадает в диапазон возможных значений первого типа (Т1);
Пр.: D:REAL; (входит под диапазон С)
С:EXTENDED;
….
C:=D (наоборот нельзя)!!!
-
Первый тип явл-ся вещественным (Т1), а второй (для Т2) явл-ся целочисленным.
Пр.: C:REAL;
D:INTEGER; (входит под диапазон С)
….
C:=D (наоборот нельзя)!!!
В языке программирования ТР данные подразделяются на след типы: простые(скалярные) и сложные.
Простые типы данных подразделяются на: стандартный (предопределенный) тип; тип, задаваемый пользователем (перечисляемый тип); тип диапазона (интервальный тип).
К стандартному типу относятся: вещественный тип, целочисленный тип, логический тип, символьный тип.
В Turbo Paskal-e используются след. сложные типы: массивы, строки, записи, множества, файлы, указатели, процедурные типы, объекты.
Любой из таких типов как массивы, строки, записи и множества характеризуются множественностью, образующих этот тип элементов, т.е. переменная или константа указанных типов всегда имеет несколько компонентов, при этом кажд. компонент в свою очередь также может принадлежать сложному типу, т.е. возможно вложение одного типа в другой.
В ТР-ле допускается произвольная глубина вложенности типов, но при этом суммарная длина люб. вложенности во внутреннем (двоичном) представлении не должна превышать 65 520 байт