Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на устные вопросы.doc
Скачиваний:
3
Добавлен:
22.09.2019
Размер:
860.16 Кб
Скачать

Вопрос 25. Записи. Описание записей в программе.

Record - структура, состоящая из фиксированного числа компонент различного типа. Каждая строка такой структуры (информация о студенте) есть запись. Данную структуру можно представить в следующем виде:

Имя записи student. Имена компонентов: fio, k, gr, n_z, stip. Наглядно запись можно представить в виде перевернутого дерева. В Паскале часто встречаются вложенные записи (одна запись выступает элементом другой записи).

Объявление записи в языке программирования ТР:

1). Туре

«имя типа» = record

«имя поля 1» : тип поля 1;

«имя поля 2»: тип поля 2;

«имя поля 3»: тип поля 3;

end;

var имя записи: имя типа:

2). Var имя записи: record

имя поля 1: тип поля 1;

имя поля 2: тип поля 2;

имя поля 3: тип поля 3;

end;

Например:

Туре

stud_rec = record

fio:string [15];

k: 1..5;

n_z: integer;

stip: integer;

end;

var student: studrec;

var student: record fio: string [15]; к: 1..5; n_z: integer; stip: integer; end;

Обращение к записи:

Выполняется с помощью точечной нотации. Формат обращения к полям записи в программе:

«имя записи». «имя поля».

При использовании вложенных записей необходимо указать полный маршрут: имя записей от высшего к данному уровню, ведущий к нужному полю, при этом каждая разделяющая точка определяет определенный уровень вложенности записи. В обращении к полю записи указывается имя переменной записи или поля, но не их тип. Например: student.fio, student.n_z

Вопрос 26. Операторы для работы с записями в программе.

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

Например: read(student.fio); read(student. Stip); student.k:=3; student.n_z:=990945; writeln(student.fio, student.k);

Обращение к записи в целом, а не только к ее полям выполняется только оператором присваивания. Слева и справа должны использоваться имена записей одинакового типа. Если в программе использовался оператор sl:=s2, то в результате выполнения все поля записи s2 получат значение полей si соответственно.

Оператор присоединения

Используя «точечную» нотацию при обращении к полям записи, приходится выписывать всю цепочку имен, начиная с высшего уровня до имени кон­кретного объекта (или поля), к которому шло обращение. Оператор присоединения позволяет упростить обращение к полю записи-. Имя записи выносится в заголовок оператора присоединения, а в теле оператора используются только имена полей записи.

Формат оператора присоединения:

with <имя записи-переменной> do

<оператор>;

Если после do стоят несколько операторов (составной оператор), то их заключают в операторные скобки, и оператор присоединения имеет формат:

with <имя записи-переменной> do

begin

<оператор 1>;

<оператор 2>;…

<оператор п>;

end;

Имя записи-переменной, указанное в заголовке оператора присоединения, автоматически присоединяется ко всем именам полей, упомянутым в теле оператора with.