• для логического типа значение false предшествует значению true;
• для символьного типа порядок определяется значением кода символа:
• для перечислимого типа порядок задается порядком в списке значений при определении типа.
Все эти типы называются порядковыми. Значения порядковых типов можно сравнивать посредством операций “=“, “>“, “<�“, “>=“, “<=“. Кроме того, для порядковых типов определены функции succ(x), pred(x) и ord(x), которые означают соответственно переход к следующему значению, переход к предыдущему значению и порядковый номер значения в множестве всех значений (начиная с нуля).
К числу составных типов относятся массивы, записи, множества и файлы. Каждый из этих типов описывается своей синтаксической конструкцией. Тип массива служит для описания переменной, состоящей из нескольких однотипных значений. Каждый элемент массива помечается целым числом или элементом другого порядкового типа, который называется индексом элемента. Массив задается указанием верхней и нижней границ индексов элемениов массива (диапазоном индексов) и типом элементов массива. Записывается это следующим образом:
array [<�диапазон>] of <�тип>
Диапазоном служат разделенные двумя точками (знак “..”) верхняя и нижняя границы массива. Память для массива выделяется в процессе компиляции программы, поэтому в качестве границ диапазонов могут выступать либо числа, либо константы, определенные в разделе констант, либо составленные из них выражения. Допускается вместо диапазона указывать имя перечислимого типа или такого стандартного типа, как boolean или char. Примеры:
array [0..100] of integer;
array [colour] of char;
array [char] of color;
В тексте программы элемент массива может являться как левой частью оператора присваивания, так и входить в состав выражения. В последнем случае элемент массива задается именем переменной, которой был присвоен тип массива, и значением индекса в квадратных скобках: <�имя массива> [ <�значение индекса> ]. Например:
var
b: integer;
a: array [1..5] of integer;
begin
a [1] := 1;
b := a [1] + 3;
end;
Возможны многомерные массивы (матрицы, таблицы), в которых задаются несколько диапазонов. Примеры:
var
a: array [1..4, 1..8] of real;
b: array [1..4] of array [1..8] of real;
c: array [0..5, 2*3-1..10, 6..4*3] of boolean;
Первые два массивы идентичны. Обращаться к элементам указанных массивов можно одним из двух способов:
a [2,3] или a[2][3];
b [2,3] или b[2][3];
c [0,7,11] или c[0][7][11].
Тип записи обозначает конгломерат разнотипных переменных. Отдельная переменная записи называется полем записи. Тип записи используется в случаях, когда описание объекта состоит из различных атрибутов, а программа должна иметь дело с несколькими объектами. Для задания записи указывается список определений полей. Определение поля записи отличается от стандартного определения типа тем, что вместо символа “=“ между идентифика¬тором поля и указанием типа используется символ “:” (так, как это происходит при описании переменной, которое будет дано ниже). Определения типов в записи выделяются спереди и сзади ключевыми словами record и end и отделяются друг от друга точкой с запятой. Примеры:
record
x,y: real;
m,n,k: integer;
a: array [1..12] of integer
end;
Тип множества соответствует переменной, значениями которой являются подмножества какого-либо базового множества. Реально в компьютере подмножество изображается строкой единиц и нулей, длина которой равна числу элементов базового множества. В Турбо Паскале число элементов множества не должно прево¬сходить 256. Описание типа множества состоит из ключевых слов set of и задания базового множества. Множество задается либо указанием имени перечислимого типа, либо указанием диапазона целых чисел. Примеры:
type
color = (white, black, red, blue, green, yellow, brown);
8th Май 2011
|
Теги:
|