Функції над дискретними типами

функція ord

Букви від 'A' до 'Z' слідують в порядку зростання, іншими словами, кожна буква має порядкове значення, відповідне її місця в алфавіті. Це порядкове значення може бути отримано за допомогою функції ord.
ord (вираз) - повертає порядковий номер літери або значення іншого дискретного типу.
ord ( 'I'), ord ( 'J'). Результат: 73, 74 (код ASCII)

Порядковий номер літери залежить від використовуваного коду. Але, незалежно від використовуваного коду, порядкові значення букв слідують по зростанню:
ord ( 'A') хоча ord ( 'Z') - ord ( 'A') і не обов'язково дорівнює 25. Те ж саме і з малими літерами:
ord ( 'a')

Певного зв'язку між великими та відповідними малими літерами немає, але можна без побоювань покладатися на те, що ord ( 'a') - ord ( 'A') має те ж значення, що і ord ( 'z') - ord ( 'Z ').

Незалежно від використовуваного коду, порядкові значення цифр також розташовані по зростанню:
ord ( '0') і, більш того, порядкові значення сусідніх цифр відрізняються на 1; так, ord ( '9') - ord ( '0') = 9. Звідси випливає, що чисельне значення цифри d (типу char) може бути отримано так
value: = ord (d) - ord ( '0').

Паскаль підтримує типи char, integer і т.д. На додаток до них програміст має право визначити і інші типи шляхом перерахування послідовності констант. Наприклад, тип, заданий перерахуванням:
type days = (mon, tue, wed, thu, fri, sat, sun);

Константи типу, заданого перерахуванням, мають порядкові значення, відлічувані від нуля. Наприклад, ord (mon) повертає 0, ord (sun) повертає 6; mon

Тип boolean - перераховується тип, який автоматично задається як
type boolean = (false, true);
отже, ord (false) дає 0, ord (true) дає 1; false

функція chr

Зворотною для ord є функція chr.
chr (вираз) - повертає літеру, порядкове значення якої задається параметром; неправильне значення тягне помилку.
chr (73), chr (74). Результат: I, J (кодування ASCII)
chr (1000). Результат: помилка

Функції succ і pred

Порядкові значення рідко бувають потрібні самі по собі. Часто досить знати наступний або попередній елемент в установленому порядку. Для цієї мети служать функції succ і pred.
succ (вираз) - повертає елемент, наступний за тим, що зазначений в якості параметра.
succ ( 'A'), succ ( '0'), succ (0). Результат: B, 1 (символ), 1 (число)
succ (false). Результат: true
pred (вираз) - повертає елемент, що передує тому, що зазначений в якості параметра.
pred ( 'Z'), pred ( '9'), pred (9). Результат: Y, 8 (символ), 8 (число)
pred (true). Результат: false

Ці дві функції можна використовувати для визначення наступних і попередніх елементів для типу, заданого перерахуванням. Візьмемо тип days. визначений раніше: pred (sun) повертає sat, succ (mon) повертає tue.

Функцію succ зручно використовувати для управління циклом: