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


 

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

6000. Качество электроэнергии в системах электроснабжения объектов 244.5 KB
  Введение Приемники электроэнергии (ПЭ) и аппараты, присоединенные к электрическим сетям, предназначены для работы при определенных номинальных параметрах: номинальной частоте переменного тока, номинальном напряжении, номинальном токе и т. п. Долгое ...
6001. Маркетинг: основы теории 2.81 MB
  В пособии рассмотрены методологические аспекты реализации современных концепций маркетинга в процессе становления и развития рыночного хозяйства в России, определены роль и значение маркетинговых методов и инструментов в организации финансово-хозяйс...
6002. Учебно-методическое пособие по выполнению контрольных работ по дисциплине Экономика 198.5 KB
  В пособии излагаются основные требования, советы, рекомендации по выполнению контрольных работ по дисциплине Экономика для студентов не-экономических специальностей заочной формы обучения. В нем представлены варианты работ, литература, приложения...
6003. Расчет количества технических обслуживаний подвижного состава за год 88.85 KB
  Введение На современном этапе перехода к рыночным отношениям возникает потребность ускоренного развития производственной инфраструктуры, в том числе транспорта, обеспечивающей надежное обращение материальных ресурсов. Ежегодно в нашей стране образуе...
6004. Автоматизация учета приема оплаты с юридических лиц за коммунальные услуги 1.18 MB
  В настоящее время приемом оплаты за коммунальные услуги занимаются предприятия, аналогичные МУП ГЕРЦ г.Махачкалы. Все эти предприятия широко распространены. Сказать, что все предприятия имеют сходную структуру, полномочия и обязанности, з...
6005. Аграрное право Российской Федерации. Курс лекций 552.5 KB
  Тема № 1. Источники аграрного права Вопрос № 1. Понятия и виды источников аграрного права В современной теории права выражение источник права часто используется в двух значениях: материальном и формальном. В материальном значении под источником пр...
6006. Неметаллические материалы. Материаловедение 939 KB
  В пособии подробно описаны основные характеристики неметаллических материалов, с точки зрения возможности их использования в качестве конструкционных. Приведены контрольные вопросы по разделу Неметаллические материалы и варианты тестовых заданий Вве...
6007. Базовые концепции логистики 685.5 KB
  Рассматриваются базовые концепции логистики: точно в срок, планирование потребности/ресурсов, стройного производства, реагирование на спрос, а также микрологистические системы, основанные на данных концепциях. Теоретические положения иллюстрируются ...
6008. Методика определения погрешностей приборов 63.5 KB
  Методика определения погрешностей приборов Погрешность срабатывания определяют путем математической обработки результатов проведенного эксперимента (рис. 1). На измерительный стержень 2 прибора 3, прикрепленный к кронштейну 5 стойки 6, воздействует ...