Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_10_zapisi.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
95 Кб
Скачать
☆
  1. Робота з даними типу “запис”

До кожного з полів запису можна звернутись, використовуючи iм’я змiн-ної типу запис та iм’я поля, раздiлене крапкою (складене iм’я). Такi iмена в програмах можна використовувати за тими самими правилами, що i для змiн-них iнших типiв. Наприклад, оператор

st . pib = ’Шевченко Т.Г.’;

записує у поле pib змiнної st текст ’Шевченко Т.Г.’; оператор

gr[4] . ocink[2]:=5;

надає значення 5 другому елементу поля ocink в четвертoму рядку масива записiв gr ; а оператор

st.datar.month:= 4 ;

записує у поле month поля datar змiнної st значення 4.

Над елементами запису можна виконувати дiї, дозволені для даних вiд-повiдного типу.

За допомогою типу “запис” можна визначити новий тип величин, наприклад комплекснi числа:

Type complex = record

re,im : real

end;

Var x,y,z : complex;

У цьому прикладi сomplex − iдентифiкатор типу “запис”; re та im − iдентифiкатори полiв (вiдповiдно дiйсна та уявна частини числа); x, y, z − змiннi типу сomplex .

Оператори

x.re:=5.3;

x.im:= −8.29e −2;

надають значення дiйснiй та уявнiй частинам комплексного числа

( x = 5,3 − 0,0879 i ); оператори

z.re: = x.re + у.re;

z.im:= x.im + y.im;

обчислюють суму z комплексних чисел x та y.

  1. Оператор приєднання. Записи з варiантами

Для спрощення запису складених iмен можна використовувати оператор приєднання, який має вигляд

with nv do

begin

<оператори з iменами полiв запису>

end;

де nv - iм’я змiнної типу “запис” або поля запису.

Оператор приєднання дозволяє використати замiсть складених iмен безпосередньо iмена полiв. При використаннi цього оператора програма стає компактнiшою, а транслятор при використаннi оператора приєднання обчислює адресу запису одноразово. Приклади використання оператора приєднання для описаних ранiш записiв:

а) with x do

begin

re:=5.3;

im:= −8.29e −2

end;

б) with st do

st . pib = ’Шевченко Т.Г.’;

в) with st . datar do

begin

month := 4;

if year < 1972 then k:= k+1

end;

Мова Object Pascal припускає використання записiв з варiантами, тобто записів, у яких певні поля можуть мати “змінюваний” тип. У цьому разі в ого-лошенні запису перелічуються всi можливi варiанти даної структури. Наприк-лад, за допомогою записів з варiантами можна описати таку iнформацiю про людину: прізвище, рiк народження, а також, якщо це чоловiк, повiдомити, чи є вiн вiйськовозобов’язаний та яку має спецiальнiсть; якщо ж це жiнка, вказати, чи вона заміжня та скiльки має дітей:

// розділ описання типів

type pol = (mug, gen);

people = record

{описання типу незмiнюваної частини запису }

fam : string[15] ;

gr : 1800. .2000;

mg : pol;

{описання варіантної частини запису ( наприкінці !)}

case pol of

mug : ( voen : boolean; spec : string[9] );

gen : (zamug : boolean; child : integer);

end;{закінчення оголошення типу people}

{розділ описання змінних }

var chel1, chel2: people;

ved : array[1. .1000] of people;

Bарiантна частина запису розпочинається оператором сase й розміщу-ється після загальної частини. Пiсля варіантної частини у запису не можуть з’являтися iншi поля (і тому оператор сase не закривається службовим словом end, єдиний end відповідає закінченню оголошення всього запису).

Описання запису може мати лише одну варiантну частину. Але варiантна частина може мiстити iншi записи (укладенi ), у тому числі з варiантами.