69747

Перелічуваний тип

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

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

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

Украинкский

2014-10-09

30.5 KB

0 чел.

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

Тема 2: Перелічуваний тип

Стандартні типи змінних, як відомо, мають значення, що є елементами з підмножини цілих, дійсних чисел, логічних значень (true або false) або множини символів обчислювальної системи (наприклад ASCII). Проте часто доводиться стикатися з поняттями, які можуть набувати специфічних значень, що не є елементами названих підмножин. Наприклад, поняття місяць (року) об'єднує часткові випадки з іменами "січень", "лютий", "березень",..., "грудень"; день тижня - це Пн, Вт, Ср,...,Сб, Нд. Для кожного з цих понять часткові випадки можна закодувати, наприклад, дні тижня - від 1 до 7, місяці року - від 1 до 12 тощо. Однак працювати з такими кодами незручно, оскільки треба постійно пам'ятати їхню відповідність конкретному поняттю. Наприклад, вираз b=9 не дає змоги зрозуміти, що порівнюється: ціле число, чи код місяця в році. Якщо це код місяця, то значно зручніше було б записати умову

b=september

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

type <ім'я типу>=(<перелік можливих значень>) Наприклад, задано тип:

type

odynycia=(dujm, fut, metr, myla);

var

masstab:odynycia.

Таким чином змінній masstab приписують тип odynycia, тобто ця змінна може мати одне із значень dujm, fut, metr, mylia. Обидва описи можна об'єднати в один, описавши тип під час опису змінних:

var

masstab: (metr, fut, dujm, mylia).

Однак у цьому разі цей же тип не можна надати ще якійсь одній або групі змінних. Тому визначення типу ліпше відділяти від опису змінної. Крім того, в деяких випадках треба зазначати тільки ім'я типу, а не його задання. А тут не буде імені типу.

Імена, перелічені в дужках, називають сталими іменами. Ще один приклад описання типів такий:

type

color=(black, white, red, orange, green, blue);

var x, y, z: color.

Значення змінної не може належати більш ніж до одного типу. Наприклад, запис

type

robden=(pn, vt, sr, ct, pt, sb);

vychden=(sb, nd);

є неправильним.

Категорично заборонено різним іменам типів надавати однакові описи.

Зазначимо, що булів тип є фактично стандартним перелічуваним типом, його можна описати так:

type

boolean=(false, true);

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

type

T=(W1,W2.....,Wn);

тоді Wi<>Wj, якщо i<>j - ознака відмінності, Wi<Wj, якщо i<j, -ознака впорядкованості.

Для визначених типів вираз white<black буде false; true>false - true;

Упорядкованість змінних перелічуваного типу дає змогу виконувати з ними функції pred і succ:

succ(blue)=white.

Перший елемент списку не має попереднього, а останній

- наступного значення, тобто pred(red) і succ(green) є невизначені.

Функція ord теж має аргументом змінну перелічуваного типу і видає ціле число, що є порядковим номером значення змінної у списку визначення. Причому перше значення у цьому списку має порядковий номер нуль, друге - 1 і т.д. Тобто

ord(pn)=0; ord(sr)=2; ord(black)=1.

Щодо процедур уведення і виведення, то, на жаль, вводити і виводити на зовнішні пристрої значення перелічуваних типів не дозволено.


 

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

71106. Философия эпохи Возрождения (XIV-XVI вв.) 43.27 KB
  Философия эпохи Возрождения – совокупность философских направлений, возникших и развивавшихся в Европе в XIV-XVI вв., которые объединяли антицерковная и антисхоластическая направленность, устремленность к человеку, вера в его великий физический и духовный потенциал...
71107. Философия Нового времени (XVII-XVIII вв.) 43.37 KB
  Развернутая критика средневековой схоластики – если в средние века вера возвышается над разумом, то теперь речь идет о развитии разума, независимо от веры. В таком виде разум оказывается уже орудием не богословов, а ученых.
71108. Философия эпохи Просвещения (18 век, Франция) 23.43 KB
  Основные черты философии: Радикализм - радикальная критика того состояния, в котором находилось общественная жизнь и мысль Франции 18 века. Просвещение – задача просветить народные массы, очистить их сознание от предрассудков, которые мешали освободиться от устаревших феодальных порядков.
71109. Немецкая классическая философия. Основные черты классической философии 61.34 KB
  Термин немецкая классическая философия был введен Фридрихом Энгельсом в его поздней работе Людвиг Фейербах и конец классической немецкой философии, опубликованной в 1886 году
71110. Философия марксизма 21.78 KB
  Материалистическое понимание истории. Материалистическое понимание истории. Поэтому люди – продукты истории а не Бога и не Природы. В этом положении уже содержится материалистическое понимание истории.
71111. Общество, семья, личность 39.03 KB
  Слово Семья восходит к корню сем имеющему отношение к семени и продолжению рода то есть рождению и воспитанию детей которое традиционно считается основным предназначением создания семьи. Иногда для обозначения семьи или родословной используется латинское слово фамилия...
71112. Психологические аспекты подготовки молодежи к семейно-брачным отношениям 131.9 KB
  Гребенникова сейчас в нашей стране подавляющее большинство браков заключаются по любви. Долго и упорно боролись за это люди ведь без взаимной любви нет и не может быть личного счастья. Но дело в том что даже настоящее взаимное чувство любви ещё не означает того что молодые люди готовы к браку.
71113. Семья как малая группа. Причины, мотивы брака, их возрастная динамика 218.53 KB
  Начинается семья с двух человек самая большая семья в мире состоит из родителей и двадцати одного ребенка Семье как социальной группе свойственен феномен гетерогенности разнородности члены семьи различаются по полу по возрасту по уровню образования доходам склонностям и привычкам...
71114. Психология семейного взаимодействия. Законы супружеских отношений 367.96 KB
  Однако здесь идет речь именно об идентификации себя с другим человеком установке которая объясняет миф о телепатии между членами семьи. Взаимодополнение это ситуация когда отношения внутри семьи строятся с учетом разницы в индивидуальных особенностях людей которые уважают...