69743

Записи з варіантами

Домашняя работа

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

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

Украинкский

2014-10-09

33 KB

0 чел.

Самостійне вивчення

Тема 5: Записи з варіантами

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

Загальний вигляд опису типу запису з варіантами такий:

type

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

<ім'я_поля_1>: <тип>;

………………….

<ім'я_поля_N>: <тип>;

case <ім'я_типу> of

<конст_1>: (<список_полів_1>);

<конст_2>: (<список_полів_2>);

……………………………

……………………………

<конст_М>: (<список_полів_М>)

end;

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

type coord=record

absc, ord: real

end;

forma=(tochka, prjama, kolo);

figura=record FIG: forma;

case forma of

tochka: (poloz: coord);

prjama: (coefA, coefB, coefC: real);

kolo: (centr: coord; radius: real)

end;

Як бачимо, кожен варіант має список описів полів, що задані в круглих дужках. Перед списком одна або декілька сталих, а перед усією групою списків є заголовок варіанта, де зазначено тип сталих, на підставі значень якого розрізняють варіанти. Кожному значенню типу повинен відповідати один з варіантів.

Селектором варіанта в описі записів з варіантами є тип (у нашому випадку forma), на відміну від селектора в операторі вибору, де ним є змінна. Відмінним порівняно з оператором case є також те, що після зазначення всіх варіантів не ставлять end, оскільки воно і так стоїть у кінці опису всього запису, а варіантна частина завжди йде після фіксованої, тому жодні поля після варіантної частини вже не можуть з'явитися.

В описі запису з варіантами можна вводити додаткове так зване поле ознаки (в нашому прикладі це поле FIG), у якому зазначено варіант, про який ідеться. Для наведеного прикладу це поле, залежно від варіанта, буде містити сталі prjama, tochka або kolo. Для зазначення цього поля є скорочений спосіб -ввести його безпосередньо в заголовок варіанта. Тобто замість

FIG: forma;

case forma of

можна записати

case FIG: forma of

Зауваження.

1. Усі імена полів повинні бути різними, навіть якщо вони трапляються в різних варіантах.

2. Якщо варіант порожній (тобто поля немає), то його записують так: С:().

3. Будь-який список полів може мати тільки одну варіантну частину, яка повинна бути після фіксованої частини запису.

4.  Кожен варіант може містити в собі варіантну частину, отже, допустимі вкладені варіанти.

5. Порядок опису полів довільний (як у варіантній, так і у фіксованій частині), оскільки звертання до полів відбувається за допомогою їхніх імен.

Нехай у програмі є опис змінної

var F: figura;

Тоді відповідний запис можна сфомувати за допомогою таких присвоєнь:

без застосування                       із застосуванням

оператора with                           оператора with:

F.FIG:=kolo;                                      with F do

F.centr.absc:=3.8;                                  begin FIG:=kolo;

F.centr.ord:=-2.17;                                     centr.absc:=3.8;

F.radius:=4.8;                                             centr.ord:=-2.17;

                                                                   radius:=4.8;

                                                               end;

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

F.FIG:=tochka;

F.radius:=12.1

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


 

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

37526. Экзаменационные вопросы по философии с ответами для поступающих в аспирантуру 654.18 KB
  Специфика философского рассмотрения человека. Религиозные учения о сотворении человека. Проблема смысла жизни человека в истории религиозных и философских учений. Свобода и ответственность человека в современном мире.
37527. Философия. Шпаргалки 52.56 KB
  Роль философии определяется прежде всего тем что она выступает в качестве теоретической основы мировоззрения а также тем что она решает проблему познаваемости мира наконец вопросы ориентации человека в мире культуры в мире духовных ценностей. Функции: 1 мировоззренческая с помощью философии у человека формируется мировоззрение. Структура философии: 1Онтология сердцевина онто бытие логосучение фил. Основной вопрос философии метафилософская и историкофилософская концепция согласно которой основной проблемой философии на...
37528. Сравнение человека и животного 23.32 KB
  Отличается ли сознание и мышление животных от сознания и мышления человека Человек обладает абстрактным мышлением у животных предметное мышлениездесь и сейчас У животных нет самозознания. Шеллер утверждал: человек может посмотреть на себя со стороны животное же не выделяет себя из окружающей среды они привязаны к природе Шеллер: точто делает человека человеком есть причины противоположные жизнидух У человека между системой рецепторов и системой эффекторов есть третье звено. Животное на внешний стимул дает прямой непосредственный...
37529. ФИЛОСОФИЯ БЕЛАРУСИ 42.57 KB
  ФИЛОСОФИЯ БЕЛАРУСИ комплекс философских идей и представлений включая социальную философию этику эстетику философское осмысление религиозных атеистических педагогических естественнонаучных и т. взглядов сложившихся в Беларуси с древнейших времен до настоящего времени. выступает как сложный многоэтапный и многовекторный процесс задаваемый спецификой развития Беларуси как страны белорусов как нации белорусской культуры включая ее философскую рефлексию как уникальной самодостаточной целостности в контексте эволюции европейского...
37530. Философские течения. История философии 129.25 KB
  философия развивалась под прямым влиянием естественных наук. Официальной философией в эту эпоху оставалась схоластика но возникновение культуры гуманизма значительные достижения в области естествознания привели к тому что философия перестала играть роль служанки богословия и перспектива ее развития приобрела антисхоластическую направленность. Философия зародилась в Древней Греции. На сходства обратил внимание Аристотель по его словам философия и мифология основаны на удивлении но мифология обращается к вере а философия – к разуму...
37531. Философия и ее концепции 131.96 KB
  Философия как социокультурный феномен Философиявысший уровень и вид мировоззрения отличся рациональностью системностью логикой и теоретической оформленностью. Мифология и религия догматичны философия антидогматична. Философия: стремится к более глубокой истине синтез наиболее общих взглядов на природу общво челка целенаправленное познание. рефлексивнаспособ познания мира и формирования отношений опирается на четкие понятия и категории Философия возникает практически одновременно в 3 точках земного шара: Китай Др.
37532. Сократ и его апология 12.6 KB
  Сократ. Сократа стали обвинять в безбожии в развращении молодежи в подрыве существующего государственного строя и даже во введении какихто новых божеств. Речь Сократа после обвинения предшествующего приговору Клевета утверждение будто Сократ занимался тем что находится под землей и тем что на небе т.
37534. Філософія, її людські виміри та смисл 43.43 KB
  Сильні душевні враження впечатления отримані насамперед в дитячому віці. Причому пізнай себе як результат еволюції природи в любові та з любов’ю до неї оскільки вона твоя матір. У зв’язку з цим хто має досвід знає що але не знає чому; хто володіє мистецтвом знає чому тобто знає причину Аристотель. Вони – чомучки почемучки.