double arrow

ОПЕРАТОР WITH


ЗАПИСЬ.

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

Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов. Определение типа записи начинается идентификатором record и заканчивается зарезервированным словом end. Между ними заключен список компонентов, называемых полями, с указанием идентификаторов полей и типа каждого поля.

Формат:

type <имя типа> = record

<идентификатор поля> : <тип компонента>;

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

<идентификатор поля> : <тип компонента>

end;

var <имя переменной> : <имя типа>;

Например:

type car = record

Number : integer; {номер}

Marka : string[20]; {марка автомобиля}

FIO : string[40]; {Ф.И.О. владельца}

Address : string[60] {адрес владельца}

end;

var M, V : car;

В данном примере запись car содержит четыре компонента. Доступ к полям записи осуществляется через переменную типа «запись». (Это переменные M и V типа car).




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

Значения полей записи могут быть использованы в выражениях. Имена отдельных полей не применяются по аналогии с идентификаторами переменных, поскольку может быть несколько записей одинакового типа. Обращение к значению поля осуществляется с помощью идентификатора переменной и идентификатора поля, разделенных точкой. Такая комбинация называется составным именем. Например, чтобы получить доступ к полям записи car, надо записать:

M.Number, M.Marka, M.FIO, M.Address

Составное имя можно использовать везде, где допустимо применение типа поля. Для присваивания полям значений используется оператор присваивания. Составные имена можно, в частности, использовать в операторах ввода-вывода. Допускается применение оператора присваивания и к записям в целом, если они имеют один и тот же тип. Например: V:=M;

После выполнения этого оператора значения полей записи V станут равны значениям соответствующих полей записи M. В ряде задач удобно пользоваться массивами из записей.

Данный оператор позволяет использовать в тексте программы имена полей без указания имени переменной-записи.

Формат:

with <имя записи> do

begin

{операторы, содержащие имена элементов записи}

end;

Один раз указав переменную типа запись в операторе with, можно работать с именами полей как с обычными переменными, т.е. без указания перед идентификатором поля имени переменной, определяющей запись.

Например:

with M do

begin

Number:=2347;

Marka:=’Газ-24’;

FIO:=’Петров В.И.’;

Address:=’ул. Гоголя,19’

end;







Сейчас читают про: