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


 

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

11507. ИЗУЧЕНИЕ И ИСПЫТАНИЕ АВТОМАТИЧЕСКИХ ПОТЕНЦИОМЕТРОВ 21.1 KB
  Методика и порядок проведения поверки В учебной лаборатории при испытании автоматических потенциометров проводят их внешний осмотр определяют характер успокоения подвижной системы прибора основную погрешность вариацию показаний порог чувствительности время про
11508. Определение соответствия статической характеристики термоэлектрического преобразователя 19.67 KB
  Методика и порядок проведения поверки В условиях учебной лаборатории поверка ТП включает внешний осмотр определение соответствия статической характеристики преобразователя стандартной НСХ. При проведении поверки соблюдают следующие условия: температура окруж...
11509. Виртуальные ПК 101 KB
  Лабораторная работа Тема: Виртуальные ПК Цель работы: изучить способы создания и настройки виртуального ПК установки на нём операционной системы Теоретические сведения Существует еще один способ установки на одном компьютере множества операционных систем с п...
11510. Восстановление файлов и каталогов в Windows 147.5 KB
  Лабораторная работа Тема: Восстановление файлов и каталогов в Windows Цель работы: научиться создавать резервные копии дисков и файлов клонировать носители создавать резервные копии системных носителей; научиться восстанавливать данные и систему с резервных копий. ...
11511. Файловая система NTFS 94 KB
  Лабораторная работа Тема: Файловая система NTFS Цель работы: изучить организацию файловой системы NTFS Теоретические сведения Файловая система NTFS была разработана для ОС Windows NT с учетом опыта разработки файловых систем FAT и HPFS. Основными отличиями являются: подд...
11512. Файловые системы Linux 291.5 KB
  Лабораторная работа Тема: Файловые системы Linux Цель работы: изучить организацию файловых систем Linux Теоретические сведения Типы файловых систем поддерживаемых в Linux Файловая система одна из основных составляющих любой операционной системы так как она обесп...
11513. Управление процессами в операционной системе 163 KB
  Лабораторная работа №4 Тема: Управление процессами в операционной системе Цель работы: ознакомиться с организацией взаимодействием планированием процессов и потоков в Windows 200/XP Теоретические сведения Процессы и потоки в Windows 2000 В операционной системе Windows 2000 е
11514. Работа с дисками в операционной системе Windows 74.5 KB
  Лабораторная работа Тема: Работа с дисками в операционной системе Windows Цель работы: изучить приёмы обслуживания дисков Теоретические сведения Проверка диска Программу для обслуживания жесткого диска необходимо запускать в стандартном режиме по возможности ч
11515. Производство мягкого мороженого 81 KB
  Лабораторная работа № 4 Производство мягкого мороженого Цель работы практически ознакомиться с технологией мягкого мороженого а именно с принципами расчета рецептуры мороженого порядком составления смеси и режимами ее обработки процессом фризерования...