Перелічувальний тип
Pascal дозволяє будувати скалярні типи даних довільної природи
шляхом оголошення повної сукупності його
елементів. При цьому перелік значень здійснюється через розділювач кому і
обмежується дужками, значення задаються
згідно з правилом побудови ідентифікаторів мови.
Наприклад:
Type rainbow = ( read, orange, yellow, green, blue, dark
blue, magenta);
Порядок перелічення
значень і визначає порядок зростання, тобто лівіші значення менші ніж правіші.
Величини
перелічувального типу зберігаються однобайтовими значеннями, які відповідають порядку
перечислювання. Першому значенню відповідає 0. Кількість елементів
перелічувального типу не перевищує 256.
При обробці даних
перелічувального типу можна користуватися як значеннями, що задані при
оголошені типу, так і відповідними байтовими числами.
Другий випадок використовується для реалізації вводу та виводу даних цього
типу. Це пов’язано з тим, що стандартні процедури вводу-виводу не допускають
використання в якості параметрів вводу-виводу величини перелічувального типу.
Це можна здійснити за допомогою механізму перетворення типів даних. А саме:
вводиться байтове числове значення, що відповідає
деякому із перелічених значень і через ідентифікатори перелічувального типу
здійснює присвоєння цього значення.
Інтервальний тип
У ряді випадків в задачі
виконуються дії не над всім діапазоном значень деякого типу, а лише над вузькою
його частиною. Тому зручно звужувати базовий тип до необхідного інтервалу.
Таким чином будується скалярний тип користувача – інтервальний.
Оголошується такий тип з
заданням значень інтервалу на основі деякого базового типу.
TYPE <ім'я
типу> =<константа1..константа2> ;
Наприклад:
Type s =
0..9; g = -32768..-1; b = ‘A’..’Z’;
Компілятор сам визначає
базовий тип, на основі якого будується інтервальний. Із декількох можливих
береться менший за розміром. Інтервальний тип можна будувати на основі
перелічування.
Над величинами
інтервального типу можна виконувати всі ті ж операції, що й на базових
величинах.
Інтервальний тип не
можна будувати на основі дійсного, оскільки цей скалярний тип не відноситься до
порядкових (дискретних) типів.
Функції роботи з рядками:
|
№ |
Назва функції |
Призначення |
|
1. |
Length(S) |
визначає кількість символів у заданому рядку |
|
2. |
Сору(S,n,m) |
виділяє m символів рядка S, починаючи від символу з номером n |
|
3. |
Pos(S1,
S2) |
визначає номер символу, з якого починається входження рядка (тексту) S1 у
рядок S2 |
|
4. |
Concat(S1, S2,...) |
з'єднує рядки в один рядок |
Процедури роботи з рядками:
|
№ |
Назва функції |
Призначення |
|
1. |
Insert (A:string, var В: string, n:integer) |
вставляє рядок А у рядок В, починаючи з позиції за номером n |
|
2. |
Delete (var S:string, n:integer, m:integer) |
вилучає m символів з рядка S, починаючи від позиції n |
|
3. |
Str (A:integer, var S:string) |
переводить числове дане A у дане типу рядок |
|
4. |
Val (S: string, var A, KOD: integer) |
засилає у числову змінну A числовий образ рядка S, повертаючи код помилки
KOD |
Контрольні
запитання:
1. Що таке змінні типи даних.
2. Стандартні функції.