Скачать презентацию Структуированный тип данных записи План лекции 1 Скачать презентацию Структуированный тип данных записи План лекции 1

Записи.ppt

  • Количество слайдов: 21

Структуированный тип данных: записи Структуированный тип данных: записи

План лекции 1. Описание структуры записи. 2. Действия над полями записи. 3. Оператор присоединения План лекции 1. Описание структуры записи. 2. Действия над полями записи. 3. Оператор присоединения WITH. 4. Записи с вариантами.

Описание структуры записи Запись- это структура данных, состоящая из фиксированного числа компонентов, называемых полями Описание структуры записи Запись- это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. Компоненты (поля) записи могут быть различного типа.

Формат объявления типа записи: < имя типа> = record <список полей> end. Здесь <имя Формат объявления типа записи: < имя типа> = record <список полей> end. Здесь <имя типа> - правильный идентификатор; record, end – зарезервированные слова (запись, конец); < список полей>- список полей, представляющий собой последовательность разделов записи, между которыми ставится ’ ; ’

Например: Type Mash= Record Nomer : integer; Marka : string (20); ] FIO: string Например: 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 Например: 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; Например: Type TRec = Record FIO: String[20]; TEL: String[7] End; Var Rec : TRec;

Например: Var Rec : Record FIO: String[20]; TEL: String[7] End; Например: Var Rec : Record FIO: String[20]; TEL: String[7] End;

Обращение к записи в целом допускается только в операторах присваивания, где слева и справа Обращение к записи в целом допускается только в операторах присваивания, где слева и справа от знака присваивания используются имена записей одинакового типа. Во всех остальных случаях оперируют отдельными полями записей.

Чтобы обратиться к отдельной компоненте записи, необходимо задать имя записи и через точку указать Чтобы обратиться к отдельной компоненте записи, необходимо задать имя записи и через точку указать имя нужного поля, например: rec. FIO, rec. TEL Такое имя называется составным.

Можно использовать вложенные поля Type Birthday = Record Day, moth : byte; Year : Можно использовать вложенные поля 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, Инициализация записей может производиться с помощью типизированных констант: 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 Формат оператора присоединения with: with < переменная > do <оператор>; Здесь with, do – ключевые слова (с, делать); <переменная> - имя переменой типа запись, за которым возможно следует список вложенных полей; < оператор > - любой оператор ТР.

with rec do begin FIO: ='Иванов А. А. '; TEL: ='2223322'; end; Это эквивалентно 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 with c. bd do month: =9; Это эквивалентно with c do with bd do month: =9; или c. bd. month: =9;

Записи могут служить для описания комплексных чисел Type complex = record deistv : real; Записи могут служить для описания комплексных чисел 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: Записи с вариантами 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 и вариантной частью, которая задаётся 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, 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;

Записи с вариантами Для всех вариантов выделяется одна и та же область памяти, а Записи с вариантами Для всех вариантов выделяется одна и та же область памяти, а это означает, что одновременное их использование невозможно. В любой записи может быть только одна вариантная часть, и, если она есть, она должна располагаться за всеми фиксированными полями. Имена полей должны быть уникальными в пределах той записи, где они объявлены.