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);


 

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

15017. БАУЫРЖАН МОМЫШҰЛЫ ШЫҒАРМАЛАРЫНДАҒЫ АБАЙ ДӘСТҮРІ 72 KB
  БАУЫРЖАН МОМЫШҰЛЫ ШЫҒАРМАЛАРЫНДАҒЫ АБАЙ ДӘСТҮРІ Даурбекова Ширинкуль Седазымқызы Б. Момышұлы атындағы №44 орта мектеп. Шымкент қаласы Туады ерлер ел үшін Өлмейді ісі мәңгілік Өшпейді абзал есімдер. Ұрпаққа жетіп м
15018. Балалар әдебиеті кейіпкерлерінің тілдік тұлғасы (Б.Соқпақбаев, М.Гумеров, М.Қабанбаевтың шығармалары бойынша) 191 KB
  КІРІСПЕ Жұмыстың өзектілігі. Қазақ балалар әдебиеті өз даму кезеңінде өзіндік тарихы бар сала. Балаларға арналған әдебиет ұлт тарихында сонау ауыз әдебиетінен бастау алып қазіргі кезеңге дейін өзінің тілдік стильдік жағынан мазмұны мен құрылымы жағынан үлкен б
15019. БАТЫРЛАР ЖЫРЫ МЕН «ШАҺНАМА» ДАСТАНЫНДАҒЫ ТАҚЫРЫП ҮНДЕСТІГІ 55 KB
  Батырлар жыры мен Шаһнама дастанындағы тақырып үндестігі Ж. Қ. Әбдібаева Қ.Жұбанов атындағы Ақтөбе мемлекеттік университеті Ақтөбе қ Көркемдік дамудыңәдеби процестің маңызды бір заңдылығыәдеби байланыстарәдебиет әлеміндегі тоғысулар мен қарымқатынаста
15020. Бауыржан Момышұлының артында қалған өсиет, нақыл, қанатты сөздер 94 KB
  Батырдан қалған өсиет Қазақтың Бауыржан Момышұлындай ұлы перзентін таныстырып жату артық. Ел оның ерлігін жазған кітаптарын біледі. Оның мірдің оғындай қанатты сөздері де халықтың аузында жүр. Сөйтсе де сол сөздерді жүйелеп беріп жинақтаса ол жаңа бір сипатқа еніп ...
15021. Бейімбет Майлиннің прозалық шығармалары 73 KB
  Дәуірдің көркем шежіресі Бейімбет Майлиннің прозасы Б. Майлин өзімен замандас Қазақ қаламгерлерінің көбі сияқты жазуды өлеңнен бастағанымен көп ұзамай прозаға ден қойған бұл жанрдағы алғашкы туындыларының өзіменақ мысалы Шұғаның белгісі үлкен суреткер еке
15022. Бүгінгі поэзиядағы көне Түркілік таным көріністері 79.5 KB
  Жанат Аймұхамбетова Л.Н.Гумилев атындағы Еуразия ұлттық университетінің доценті филология ғылымдарының кандидаты БҮГІНГІ ПОЭЗИЯДАҒЫ КӨНЕ ТҮРКІЛІК ТАНЫМ КӨРІНІСТЕРІ Көне түркі ескерткіштеріндегі Төбемде Көк тәңірі төменде Қара жер жаралғанда екеуінің ...
15023. Бұқаралық ақпарат құралдары 54 KB
  БҰҚАРАЛЫҚ АҚПАРАТ ҚҰРАЛДАРЫҚазақстан Республикасының 1995 жылы қабылданған Конституциясының 18бабының 3пункті бойынша азаматтар мемлекеттік органдар мен қоғамдық бірлестіктерден сонымен қатар бұқаралық ақпарат құралдарынан еркін ақпарат алуға құқықты. Осы салаға қат
15024. Ғ.Мүсіреповтің туғанына - 105 жыл 1.01 MB
  Ғ. Мүсірепов атындағы Солтүстік Қазақстан облыстық балаларжасөспірімдер кітапханасы Ғ.Мүсіреповтің туғанына 105 жыл толуына арналған Кемеңгер қаламның құдіреті істәжірибеден Петропавл 2007 ж. ...Әлі де талайталай заманд...
15025. Дала уалаяты, Түркістан уалаяты газеттеріндегі көтерілген мәселелер 144.5 KB
  Дала уалаяты Түркістан уалаяты газеттеріндегі қоғамдықсаяси және ағарту мәселелері. XIX ғасырдың екінші жартысында қазақ елін жерін патшалы Ресейдің толықтай билеп алуына байланысты Қазақстаның Ташкент Орынбор Омбы Орал сияқты кейбір ірі қалаларында патш...