Обращение к компонентам записей можно упростить, если воспользоваться оператором присоединения with.
Формат оператора присоединения with:
with < переменная > do <оператор>;
Здесь with, do – ключевые слова (с, делать);
<переменная> - имя переменой типа запись, за которым возможно следует список вложенных полей;
< оператор > - любой оператор ТР.
Он позволяет заменить составные имена, характеризующие каждое поле, просто на имена полей, а имя записи определить в операторе присоединения:
Например для наших случаев:
with rec do
begin
FIO:='Иванов А.А.';
TEL:='2223322';
end;
Такая алгоритмическая конструкция полностью идентична следующей:
rec.FIO:='Иванов А.А.';
rec.TEL:='2223322';
with c. bd do month: =9;
это эквивалентно
with c do with bd do month: =9;
или c. bd. month: =9;
Записи могут служить для описания комплексных чисел:
действительная и мнимая части является полями записи.
Type
complex = record
deistv : real;
mnim : real;
end;
Var
A, B, C : complex
Begin
A. Deistv : = 6.3;
B. Mnim : =1.9$
…
End.
A=(6.3+i 1.9)
Тurbo Рascal разрешает использовать записи с вариационными полями:
type
Forma = record
Name : string:
case byte of
0: (birthplace: string [40]);
1: (country: string [20];
entry Date : 1..31;
exit Date : 1..31)
end;
Здесь
Forma – запись с одним фиксирующим полем name и вариантной частью, которая задаётся приложением case.. оf.
Вариантная часть состоит из нескольких вариантов (из двух: 0 и 1).
Каждый вариант определяется константой выбора, за которой следует двоеточие и список полей, заключённых в круглые скобки.
В конце вариантной части нет END
END только к Record.
С помощью записей с вариантами вы можете одновременно сохранять различные структуры данных, которые имеют большую общую часть, одинаковую во все структурах, и некоторые небольшие отличающиеся части.
Например, сконструируем запись, в которой мы будем хранить данные о некоторой геометрической фигуре (отрезок, треугольник, окружность).
type
TFigure = record
type_of_figure: string[10];
color_of_figure: byte;
...
case integer of
1: (x1,y1,x2,y2: integer);
2: (a1,a2,b1,b2,c1,c2: integer);
3: (x,y: integer; radius: word);
end;
var
figure: TFigure;
Таким образом, в переменной figure мы можем хранить данные как об отрезке, так и о треугольнике или окружности. Надо лишь в зависимости от типа фигуры обращаться к соответствующим полям записи.
Для всех вариантов выделяется одна и та же область памяти. То есть, индивидуальные поля для каждого из типов фигур занимают тем не менее одно адресное пространство памяти, а это означает, что одновременное их использование невозможно.
В любой записи может быть только одна вариантная часть, и, если она есть, она должна располагаться за всеми фиксированными полями.
Имена полей должны быть уникальными в пределах той записи, где они объявлены.
1. Проблемы и недостатки информационной логистики
2. Цели и роль информационных потоков в логистических системах.
3. Информационные логистические системы.
4. Принципы построения логистических информационных систем
5. Информационная инфраструктура.
6. Создание многоуровневых автоматизированных систем управления материальными потоками.