Записи.ppt
- Количество слайдов: 21
Структуированный тип данных: записи
План лекции 1. Описание структуры записи. 2. Действия над полями записи. 3. Оператор присоединения WITH. 4. Записи с вариантами.
Описание структуры записи Запись- это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. Компоненты (поля) записи могут быть различного типа.
Формат объявления типа записи: < имя типа> = record <список полей> end. Здесь <имя типа> - правильный идентификатор; record, end – зарезервированные слова (запись, конец); < список полей>- список полей, представляющий собой последовательность разделов записи, между которыми ставится ’ ; ’
Например: Type Mash= Record Nomer : integer; Marka : string (20); ] FIO: string (40); Adres: staing (60) End; Var M, V: Mash;
Например: Type Birthday = record Day, moth : byte; Year : word End; Var a; b: Birthday;
Например: Type TRec = Record FIO: String[20]; TEL: String[7] End; Var Rec : TRec;
Например: Var Rec : Record FIO: String[20]; TEL: String[7] End;
Обращение к записи в целом допускается только в операторах присваивания, где слева и справа от знака присваивания используются имена записей одинакового типа. Во всех остальных случаях оперируют отдельными полями записей.
Чтобы обратиться к отдельной компоненте записи, необходимо задать имя записи и через точку указать имя нужного поля, например: rec. FIO, rec. TEL Такое имя называется составным.
Можно использовать вложенные поля Type Birthday = Record Day, moth : byte; Year : word End; Var C : Record Name: string; Bd : Birthday End; begin …. if c. bd. year = 1939 then … end.
Инициализация записей может производиться с помощью типизированных констант: type Rec. Type = Record x, y: Word; ch: Char; dim: Array[1. . 3] of Byte end; const Rec: Rec. Type = ( x: 127; y: 255; ch: 'A'; dim: (2, 4, 8) );
Оператор присоединения 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)
Записи с вариантами 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 только к Record.
type TFigure = record type_of_figure: string[10]; color_of_figure: byte; case integer of 1: (x 1, y 1, x 2, y 2: integer); 2: (a 1, a 2, b 1, b 2, c 1, c 2: integer); 3: (x, y: integer; radius: word); end; var figure: TFigure;
Записи с вариантами Для всех вариантов выделяется одна и та же область памяти, а это означает, что одновременное их использование невозможно. В любой записи может быть только одна вариантная часть, и, если она есть, она должна располагаться за всеми фиксированными полями. Имена полей должны быть уникальными в пределах той записи, где они объявлены.


