Паскаль: тип символів та інші перелічувані, Детальна інформація
Паскаль: тип символів та інші перелічувані
Типи 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
Вираз із сталими перелічуваних типів можна присвоювати однотипним із ними змінним.
Всі чотири базових типи називаються скалярними, тому що значення цих типів не складені з частин, які можна було б окремо ідентифікувати. У наступному підрозділі ми розглянемо спосіб означення власних скалярних типів. Але всі вони будуть перелічуваними.
У мові Турбо Паскаль для всіх перелічуваних типів означено операції, аналогічні 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
© Referats, Inc · All rights reserved 2021