Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Діапазонний тип

Begin

Type

Type

Type

Перерахований тип даних

Тема: Перераховані і діапазонні типи даних. Перетворення типів. Регулярний тип даних. Одновимірні, двовимірні й багатомірні масиви.

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

1. Опис перерахованого типу, складається зі списку його елементів, взятих у круглі дужки. Кожний з елементів являє собою унікальний ідентифікатор.

Season = (Spring, Summer, Autumn, Winter);

WeekDay = (Mon, Tue, Wed, Thu, Fri, Sat, Sun);

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

2. У рамках блоку, де оголошений перерахований тип, ідентифікатори всіх елементів перерахованого типу, інтерпретуються як константи. Spring, Summer, Autumn і Winter являють собою константи типу Season, a Mon, Tue, Wed, Thu, Fri, Sat і Sun – константи типу WeekDay. Тут необхідно звернути увагу на те, що ці ідентифікатори не є рядковими константами й у лапки не беруться.

3. Оскільки ідентифікатори перерахованого типу, є константами для всього блоку, де вони оголошені, то опис того самого ідентифікатора в різних типах вважається помилкою. Так, при трансляції такої програми –

program DuplicateIdentifier;

WeekDay = (Mon, Tue, Wed, Thu, Fri, Sat, Sun);

WorkDay = (Mon, Tue, Wed, Thu, Fri);

Begin … end.

буде видане повідомлення

Error: Duplicate identifier (Mon).

4. Константи визначених типів не можуть бути значеннями перерахованого типу.

Наприклад, наступні описи некоректні.

Digitals = (0,1,2,3,4,5,6,7,8,9); {константи числового типу}

DigSymbols = (‘1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’) {константи символьного типу}

WeekDay = (‘Mon’,’Tue’,’Wed’,’Thu’,’Fri’,’Sat’,’Sun’); {константи рядкового типу}

5. Так як перераховані типи, є порядковими, то, відповідно, вони перерахуванням своїх елементів визначають упорядковані набори констант. Впорядкування констант у типі виконується відповідно до послідовності, у якій перераховуються ідентифікатори. Порядковий номер константи перерахованого типу, визначається її позицією в списку ідентифікаторів при оголошенні. Перша константа в списку має порядковий номер 0, друга - номер 1, і т.д.

6. Оператор присвоювання для змінної перерахованого типу допустимий, якщо праворуч стоїть значення з опису типу саме цієї змінної, наприклад:

type Day = (Mon, Tue, Wed, Thu, Fri, Sat, Sun);

Color = (White, Red, Black);

Name = (Anna, Oleg, Vova, Gala);

var WorkDay: Day; NameBoy, NameGirl: Name;

Continent: (Africa, Asia, America, Australia, Europe, Antarctica)

WorkDay:= Mon;

NameBoy:= Oleg;

Continent:= Asia;

end.

Але помилково: NameBoy:= Red;

7. Змінні перехованих типів дозволено використовувати в операторах присвоювання, а також як індекси масивів і границь оператора for.

8. Відзначимо одну «неприємну» особливість перерахованих типів. До значень цих типів не можна застосовувати ні арифметичні операції, ні стандартні процедури введення-виведення Read, Readln, Write, Writeln.

9. Так само, як і до змінних інших порядкових типів, до змінних перерахованого типу, застосовуються функції Ord, Pred і Succ.

Ord(Asia)=1;

Succ(Vova)=Gala; Pred(Sat)=Fri; (але таким чином результатів не буде – див п. 7).

10. Єдиною групою операцій, які допустимо використовувати з операндами перерахованого типу, є група операцій відношення. Ні додавати, ні множити, ні віднімати, ні виконувати які-небудь інші дії зі змінними перерахованого типу, не допускаються.

11. Перерахований тип даних вживається для поліпшення читабельності програми.

 

Змінна перерахованого типу може використовуватись в якості змінної-селектора в умовному операторі Case..of. Переваги використання змінних перерахованого типу наступні:

ü в ряді випадків використання таких змінних робить програму більш наглядною;

ü використовуючи такі змінні легше захистити програму від небажаного введення даних.

Діапазонний тип являє собою діапазон (інтервал) значень якого-небудь порядкового типу, що називають базовим. При описі діапазонного типу вказуються найменше й найбільше значення діапазону значень, допустимих для цього типу. Мінімальне й максимальне значення інтервалу розділяються знаком .. (дві крапки).

0.. 500 -1.. 1 -128.. 127 ‘А’.. ‘Z’ Моn.. Fri

Змінна діапазонного типу має всі властивості змінних базового типу, однак її значення на етапі виконання повинно належати вказаному діапазону.

Діапазонний тип даних задається на базі якого-небудь порядкового типу із вказівкою більш вузького, ніж у базового, діапазону можливих значень.

Нижнє обмеження не повинне перевищувати верхнє.

До змінних діапазонного типу застосовні функції Ord, Pred, Succ.

Діапазонний тип даних використовується для контролю значень змінних, а також для поліпшення наочності програми.


<== предыдущая лекция | следующая лекция ==>
Складений оператор | Одновимірні масиви
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 906; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.