Меню сайта

Записи в Pascal
Записи

Запись – это структурированный комбинированный тип данных, состоящий из фиксированного числа компонент (полей) разного типа. Поля записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.

Объявление типа записи выглядит следующим образом:

TYPE &lt-имя типа&gt- = —RECORD &lt-список полей&gt- —END

Имя типа –идентификатор, -список полей представляет собой последовательность разделов записи, между которыми ставится точка с запятой.

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

Пример 1:

TYPE

Adres = record

Gorod, Uliza : string[20]-

dom, kvart : integer-

end-

var

a,b : Adres-

Как и в массиве, значения переменных типа записи можно присваивать другим переменным того же типа, например а := b-

К каждому из компонентов записи можно получить доступ, если использовать составное имя, т.е. указать имя переменной, затем точку и имя поля:

а.Gorod := ‘Москва’-

a.dom := 36-

Когда ведется работа с несколькими полями одной и той же записи, используется оператор присоединения WITH:

WITH &lt-переменная&gt- DO &lt-оператор&gt-

Внутри оператора компоненты записи обозначаются с помощью только имен полей.


Пример -2:

Program primer 2 — —
type anketa=record —
fio: string[45]- —
dat_r: string[8]- —
adres: string[50]- —
curs: 1..5- —
grupp: string[3]
end- —
var student: array [1..100] of anketa- —
I: integer- —
begin

for I:=1 to 100 do —
with student[I] do —
begin —
writeln (‘введите сведения о’, I , ‘-м студенте’)- —
writeln (‘введите фамилию, имя и отчество’)- —
readln (fio)- —
writeln (‘введите дату рождения’)- —
readln (dat_r)- —
writeln (‘введите адрес’)- —
readln(adres)- —
writeln (‘введите курс’)- —
readln(curs)- —
writeln (‘введите группу’)- —
readln (grupp)- —
end-

end.

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

Пример3:

Type

Adres = record

Gorod, Uliza : string[20]-

dom, kvart : integer-

end-

student:record

Id:word-

FIO: string[30]-

Adr:adres

end-

var st:student-

В этом примере поле Adr представляет собой запись, описанную ранее.

Иногда содержимое отдельной записи зависит от значения — одного — из ее полей. — В языке -Паскаль — допускается описание записи, — состоящей из общей и вариантной частей. — Вариантная часть задается с помощью конструкции — — — —case P of, где Р — имя — поля из общей — части — записи.

Пример -4:

type
Car = record
Brand: string[20]-
Year- integer-
case Kind: string[8] of
‘грузовая’: (Tonnage: real)-
‘легковая’: (Passengers: byte)-
end-

Тип Car используется для хранения информации об автомобиле. В поле Brand
хранится производитель автомобиля, а в поле Year — год выпуска. Поле Tonnage (грузоподъемность) типа real доступно только в том случае, если поле признака Kind имеет значение ‘грузовая’. Соответственно, поле Passengers (пассажиры) типа byte доступно только в том случае, если поле признака Kind имеет значение ‘легковая’.

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

Категория: Обучение Pascal | Дата: 23.04.13

Меню раздела
Блок