Паскаль: тип символів та інші перелічувані, Детальна інформація

Паскаль: тип символів та інші перелічувані
Тип документу: Реферат
Сторінок: 4
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 11.6
Скачувань: 1174
Типи boolean, char і integer, на відміну від типу real, є перелічуваними. Операції succ, pred, ord записуються у вигляді викликів функцій: вирази pred(1), succ('a') і ord(true) мають значення відповідно 0, 'b' і 1.

Всі чотири базових типи називаються скалярними, тому що значення цих типів не складені з частин, які можна було б окремо ідентифікувати. У наступному підрозділі ми розглянемо спосіб означення власних скалярних типів. Але всі вони будуть перелічуваними.

У мові Турбо Паскаль для всіх перелічуваних типів означено операції, аналогічні succ і pred. Вони застосовуються до змінних перелічуваних типів у вигляді викликів процедур INC і DEC. Виклик inc(z) рівносильний оператору z:=succ(z), dec(z) – оператору z:=pred(z). У виклику може бути другий аргумент – цілочисловий вираз. Наприклад, виклик inc(z, 2) задає збільшення z на дві "одиниці" того типу, до якого належить z. Якщо змінна z типу char і має значення 'A', то в результаті виконання inc(z, 2) її значенням буде 'C'. Значення виразу може бути й від'ємним – тоді z зменшиться. Аналогічно за виконання dec(z, 3) значення z зменшується у його типі, наприклад, від 3 до 0 або від 'D' до 'A'.

3. Означення власних перелічуваних типів

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

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

type ім'я = вираз, що описує елементи множини;

Службове слово type – це англійське "тип". З виразами, що задають множини елементів, ми будемо знайомитися поступово.

Найпростіший вираз – це ім'я типу, уже означене вище або ім'я стандартного типу. Наприклад, означення

type int = integer;

n

TH

t

v

E

I

r

задає нове іменування типу integer. Після цього означення скрізь замість довгого імені integer можна писати коротке int.

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

Мова Паскаль дозволяє програмісту означати свої власні перелічувані типи. Вони називаються типами-переліками та типами-діапазонами. Переліки наочно подають множини таких значень, що природно позначаються словами. Наприклад, сигнали світлофора або дні тижня.

Множину днів тижня, позначену {Пн, Вт, Ср, Чт, Пт, Сб, Нд} у мові Паскаль можна задати, означивши тип-перелік з ім'ям, наприклад, Weekd:

type Weekd=(Mon, Tue, Wed, Thu, Fri, Sat, Sun).

Тут ужито скорочення від англійських слів Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday – понеділок, вівторок тощо до неділі.

Аналогічно сигнали світлофора можна задати, определив тип Lights:

type Lights=(red, yellow, green) {червоний, жовтий, зелений}

Як бачимо, перелік задається виразом вигляду

( список ідентифікаторів )

Ідентифікатори списку після цього означення виступають сталими відповідного типу. Сталі не можуть повторюватися в означеннях того самого блока. Наприклад, якщо разом із типом сигналів світлофора означити ще тип кольорів райдуги, то використовувати імена red, yellow, green не можна.

Порядок сталих у списку задає операції ord, pred і succ, означені для всякого переліку. Наприклад, ord(Mon)=0, ord(Tue)=1 тощо, ord(Sun)=6, succ(Mon)=Tue, pred(Sat)=Fri. У відповідності зі значеннями ord означено й порівняння, наприклад, red
Вираз із сталими перелічуваних типів можна присвоювати однотипним із ними змінним.

The online video editor trusted by teams to make professional video in minutes