68997

Організація комбінованих типів, оператор приєднання

Лекция

Информатика, кибернетика и программирование

Описаний вище регулярний тип масив - це структура даних, що містять компоненти однакового типу. Проте часто доводиться зберігати й опрацьовувати сукупності даних різного типу. З цією метою можна було б для кожного типу даних формувати окремий масив і визначати взаємну відповідність...

Украинкский

2014-09-28

33 KB

0 чел.

Лекція №7

Тема: Організація комбінованих типів, оператор приєднання

План заняття:

  1.  Організація комбінованих типів у Паскалі
  2.  Оператор приєднання

Організація комбінованих типів у Паскалі

Описаний вище регулярний тип масив - це структура даних, що містять компоненти однакового типу. Проте часто доводиться зберігати й опрацьовувати сукупності даних різного типу. З цією метою можна було б для кожного типу даних формувати окремий масив і визначати взаємну відповідність між компонентами цих масивів. Однак це незручно. Мова Паскаль дає змогу ефективно подавати такі різнотипні дані за допомогою комбінованих типів - записів.

Спрощена форма визначення запису включає ім'я запису, імена окремих компонент і відповідних їм типів даних:

type

<ім'я_запису>= record

<ім'я_компоненти_1>: <тип>;

<ім'я_компоненти_2>: <тип>;

<ім'я_компоненти_n>: <тип>;

end;

Розглянемо такий приклад. Нехай треба задати інформацію про студентів групи PZ11 у вигляді "прізвище студента й оцінки на іспитах з чотирьох предметів" та обчислити середній бал кожного студента. Для опису цих даних використовують записи.

Компоненти однакового типу можна об'єднувати і записувати через кому, зазначаючи їхній спільний тип. Дані, наведені в прикладі, можна описати як запис так:

type STD=record

FAM: string [15];

B1, B2, B3, B4:2..5;

SB: real

end;

Тут змінна SB має зміст середнього бала, В1, В2,.., В4 -бали з відповідних предметів; ідентифікатор FAM позначає рядок символів для зберігання прізвища студента. Змінна STD (ім'я запису) - це структура для зберігання інформації про одного студента. Якщо, як у наведеному прикладі, в пам'яті треба зберігати інформацію про 24-х студентів групи, то вводять масив PZ11, що є масивом записів  

var PZ11:array[1..24] of STD;

Компонент запису вибирають за іменем запису та іменем цього компонента, розділених крапкою. У записах компоненти називають полями. Опишемо ще змінну:

var

STR: STD;

Приклади звертання до окремих полів: STR.FAM, STR.B3, PZ11 [8].SB. Ці імена називають селекторами запису, у програмах їх використовують так само, як і змінні інших типів. Наприклад, для обчислення середнього бала можна застосувати оператор присвоєння:

PZ11 [i].SB:=(PZ11 [і].В1 +PZ11 [i].B2+PZ11 [i].B3+PZ11 [і].В4)/4;

Можливі й такі оператори присвоєння:

PZ11[22].FAM:='Юpкiв Юрій';

PZ11[4].B4:=5;

PZ11[i+1].SB:=4.712;

Тобто з компонентами записів можна виконувати операції згідно з їхнім типом.

З іншого боку, у мові Паскаль немає жодної операції, яка сприймала б запис як щось ціле. Однак за допомогою оператора присвоєння можна пересилати значення одного запису в інший. Наприклад, враховуючи опис типу STD, вводять змінні

Var Z1,Z2: STD;

Тоді в програмі можна записати оператор

Z1:=Z2,

який буде еквівалентний таким операторам:

Z1.FAM:=Z2.FAM;

Z1.B1:=Z2.B1;

Z1.B2:=Z2.B2;

Z1.B3:=Z2.B3;

Z1.B4:=Z2.B4;

Z1.SB:=Z2.SB;

Зрозуміло, що до виконання оператора Z1 :=Z2 значення всіх компонент змінної-запису Z2 повинні бути визначені. А присвоювати структури даних, що є значеннями змінних комбінованого типу, можна тільки змінним того ж комбінованого типу.

Записи застосовують також як параметри процедур і функцій, аналогічно, як використовують для цього масиви. Значенням функції запис бути не може.

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

У програмах, пов'язаних з опрацюванням записів, доводиться зазначати в операторах селектори запису, що є складеними іменами. Це приводить до збільшення програм, зайвої їх громіздкості. В мові Паскаль цей недолік усунуто за допомогою оператора приєднання, який забезпечує доступ до компонентів запису так, ніби вони є прості змінні.

Загальний вигляд оператора приєднання такий:

with <ім'я_запису> do <оператор S>

Застосувавши такий оператор, до компонентів запису всередині оператора S можна звертатися вже тільки за іменем поля, не називаючи імені запису. Наприклад, оператор уведення масиву PZ11 можна записати

for i:=1 to M do

with PZ11[i] do

read(FAM, В1, В2, ВЗ, В4);


 

А также другие работы, которые могут Вас заинтересовать

83429. Сценарій ДЮП «Прометей» 41.5 KB
  Але жарке, палюче сонце обпекло молоде листячко і маленька, настирлива іскорка починає свою гру. Пожежу ще можна попередити, якщо засипати вогнище піском. 10 година 12 хвилин. Вітер переносить полум’я на сусідні дерева, вогонь ще можна загасити водою, але гілки дерев уже сплелись...
83430. Антитютюнова пропаганда 74.5 KB
  Мета заходу: Виховання свідомого ставлення до свого здоров’я та здоров’я громадян як найвищої соціальної цінності; формування валеологічного світогляду; формування та пропаганда здорового способу життя; забезпечення обізнаності учнів з питань тютюнопаління; профілактика шкідливих звичок...
83431. Птахи. Закріплення звука[ш], букви Ш, ш. Робота над виразністю читання, речень, різних за метою висловлювання 52.5 KB
  Складіть малюнок птаха і прочитайте цікаву інформацію про нього.Якого птаха впізнали сова Прочитайте цікаву інформацію про нього. Якого птаха впізнала ваша група шишкарик Прочитайте цікаву інформацію про нього. Звернемось до нашого словника синички зустрілися шматочки сидиш комашка поспішай годівничка лети Прочитайте слова першого стовпчика.
83432. Як живуть птахи? 70.5 KB
  Мета: дати уявлення про довкілля птахів на прикладі ластівки і синички їх пристосованість до умов життя. Щоб гніздо було міцнішим ластівки додають до глини невеликі соломинки. Пташенята і дорослі ластівки голодують бо тоді комахи не літають. Ластівки знищують багато шкідливих комах.
83433. Дивовижний птах. Паперопластика 82 KB
  Форма: конкурс змагання на найкращій виріб Тип: урок творчості Обладнання: музика лісу зображення лебедя асоціативний куб послідовності роботи груп шаблони вироби лебедя. Германці вірили що сонце може перетворюватись в прекрасну Богиню білосніжного лебедя...
83434. А.С. Пушкин «Сказка о рыбаке и рыбке» 51 KB
  На какие две группы делятся все известные вам сказки Сказки бывают народные а бывают авторские. Чем авторская сказка отличается от народной Авторы народных сказок неизвестны сказки передаются из поколения в поколения с возможными изменениями.
83435. Система міжнародного права 33.8 KB
  Система міжнародного права - це обєктивно існуюча цілісність внутрішньо взаємозвязаних норм міжнародного права, що розподіляються по відносно відособленим комплексам, спрямованим на регулювання однорідних суспільних відносин. Вона включає галузі, інститути та норми.
83436. Співвідношення міжнародного публічного і міжнародного приватного права 36.01 KB
  Відбуваються постійні контакти між фізичними і юридичними особами різних держав відносини на рівні міжнародних неурядових організацій які регулюються нормами міжнародного приватного права. Норми міжнародного приватного права не повинні суперечити основним принципам міжнародного права. Крім того вони мають спільну мету забезпечення мирного співіснування та розвитку міжнародного співробітництва держав.