Приведение типов переменных
При приведении типа переменной размер переменной должен быть равен размеру типа, к которому она приводится.
Например, переменная типа LongInt может быть приведена к типу массив из четырех символов. В этом случае после приведения типа переменной можно указать индекс.
Операцию приведения типа переменной можно использовать как в правой, так и в левой части оператора присваивания в качестве фактического параметра подпрограммы.
Пример 1.
type t_season=(Winter, Spring, Summer, Autumn);
t_vect=array[1..2] of word;
var p:pointer; s:t_season;
begin write(‘Введите сезон: 0 - зима, 1 - весна, 2 - лето, 3 - осень’);
read(byte(s));
…
getmem(p,1);
write(‘Сегмент: ’, t_vect(p)[2], ’; смещение:’, t_vect(p)[1]);
…
end.
Обработка одномерных массивов разных размеров с фиксированным базовым типом
Для обработки одномерных массивов с разными типами индексов, но с одним и тем же базовым типом, можно описывать подпрограммы, которым передается массив, как параметр-открытый массив. В таких подпрограммах параметр-массив приводится к типу массив с тем же базовым типом, но с типом индекса 0... n -1, где n - размер массива. Максимальное значение индекса элемента массива а, передаваемого как открытый массив, в подпрограмме возвращает функция High(а).
Пример 2. Описание процедуры ввода вещественного массива a:
Procedure read_vect(var a:array of real);
var i:word;
begin for i:=0 to High(а). do
read(a[i])
end;