Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programuv_good.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
990.21 Кб
Скачать
  1. Скалярні типи користувача:

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

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

Наприклад

Type rainbow = ( read, orange, yellow, green, blue, dark blue, magenta);

Порядок перелічення значень і визначає порядок зростання, тобто лівіші значення менші ніж правіші.

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

Кількість елементів перелічувального типу не перевищує 256.

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

Наприклад

Var x:rainbow; i:byte;

readln (i);

x:=rainbow(i)

б) Інтервальний тип

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

Оголошується такий тип з заданням значень інтервалу на основі деякого базового типу.

TYPE <ім'я типу> =<константа1..константа2> ;

Наприклад

Type s = 0..9; g = -32768..-1; b = ‘A’..’Z’;

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

Над величинами інтервального типу можна виконувати всі ті ж операції, що й на базових величинах.

Інтервальний тип не можна будувати на основі дійсного, оскільки цей скалярний тип не відноситься до порядкових (дискретних) типів.

  1. Порядкові типи даних:

Із шести розглянутих скалярних типів п’ять мають такі спільні властивості:

  1. Кількість елементів типу є фіксована і визначена наперед.

  2. Всі значення впорядковані за зростанням.

  3. За їх природою між двома сусідніми немає жодного проміжного.

Ці властивості характеризують так звані порядкові або дискретні типи – цілі числа, символи, логічні ( булеві) величини, перелічувальні, інтервальні типи.

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

  1. Інкрементація.

  2. Декрементація.

Операція 1 позначається INC. Реалізується стандартною функцією inc і збільшує значення аргументу на 1 одиницю відповідного типу.

Операція 2 – DEC. Реалізується стандартною функцією dec і зменшує значення аргументу на 1 одиницю відповідного типу.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]