3. Типы данных
27
Например:
type BookType = record
 Name: string[31];
 case AuthorKnown: boolean of
 true: (Author: string[33]);
 false: ();
 end;
var Book: BookType;
Теперь можно записать:
Book.Name = 'Pascal User Manual and Report';
Book.AuthorKnown:= TRUE;
Book.Author:= 'K. Jensen, N. Wirth';
 (* ... текст программы ... *)
write(Book.Name, ' written by ');
if Book.AuthorKnown then
writeln(Book.Author)
elsewriteln('Unknown author.');
ПРИМЕЧАНИЯ:
*
все имена полей должны быть уникальными, даже если они встречаются в
разных вариантах одной записи;
*
если некоторому значению не соответствует вариант, его можно не
указывать, т.е. не все значения типа признака обязательны (поле
опускается);
*
любой список полей может иметь только одну вариантную часть, которая
должна следовать за фиксированной частью записи;
*
каждый вариант может содержать в себе вариантную часть, т.е.
допускаются вложенные варианты;
*
область действия идентификаторов констант перечисляемого типа,
вводимых в записном типе, расширяется на вложенные блоки.
3.2.4. Множественный тип
SetType =
'set' 'of' OrdinalType.
Множественные типы обеспечивают компактную структуру, в которой
сохраняется информация о группах значений, относящихся к ординальному типу.
Множество значений переменной множественного типа включает в себя все (включая
пустое) подмножества элементов базового типа. Значение переменной
множественного типа является множеством элементов типа, совпадающего с базовым
типом.В UniPascal-е число элементов не должно превышать 256 с порядковыми
номерами в диапазоне от 0 до 255.
Над объектами множественного типа можно применять следующие операции:
*
равенство множеств 
=
*
неравенство (различие) множеств 
<>
*
включение одного множества в другое >=, <=
<<  <  GO  >  >>

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