- •Передмова
- •Тема 1: Правила техніки безпеки при роботі з комп’ютером
- •Тема 2: Алфавіт. Ідентифікатори. Константи. Вирази
- •Тема 3: Загальна структура і розділи Pascal-програми
- •Тема 4: Введення і виведення у Pascal-і. Форматоване виведення
- •Тема 5: Прості (скалярні) типи данних
- •Тема 6: Завантаження середовища Турбо Паскаль. Функціональні клавіші
- •Тема 7: Меню опції
- •Тема 8: Вираження і пріоритет операцій. Стандартні математичні функції та процедури
- •Тема 9: Умовний оператор. Вкладений умовний оператор
- •Тема 10: Оператор вибору
- •Тема 11: Оператори циклу. Оператор циклу з параметром
- •Тема 12: Оператор циклу з перед- і з постумовою
- •Тема 13: Складні типи. Масиви
- •Тема 14: Багатомірні масиви
- •Тема 15: Пошук і сортування елементів масиву. Класи алгоритмів сортування
- •Тема 16: Динамічна пам'ять. Адреси і покажчики
- •Тема 17: Оголошення покажчиків, виділення та звільнення динамічної пам’яті
- •Тема 18: Процедури та функції для роботи з динамічною пам’яттю
- •Тема 19: Символьний тип даних. Упаковані масиви
- •Тема 20: Процедури та функції для обробки рядків
- •Тема 21: Структурований тип даних - безліч
- •Тема 22: Структурований тип даних – записи
- •Тема 23: Опис файлових змінних. Обробка типізованих файлів
- •Тема 24: Послідовний та прямий доступ до файлів
- •Тема 25: Обробка не типізованих файлів
- •Тема 26: Робота з текстовими файлами
- •Тема 27: Типізовані константи
- •Тема 28: Поняття та робота з процедурами та функціями
- •Тема 29: Використання модуля crt. Програмування клавіатури
- •Тема 30: Використання модуля crt. Текстове виведення на екран. Програмування звукового генератора
- •Тема 31: Графічні можливості tp 7.0. Використання бібліотеки Graph
- •Тема 32: Бібліотечні модулі користувача
- •Тема 33: Основні принципи ооп. Створення об’єктів. Використання об’єктів
- •Список літератури
- •Додаток а (довідковий) Основні алгоритми обробки масивів
- •Додаток б (довідковий) Питання перевірки знань з теорії
- •Додаток в (довідковий) Поширені коди клавіш
- •Додаток д (довідковий) Коди сканування клавіатури
Тема 27: Типізовані константи
У Турбо Паскалі допускається використання констант, що типізуються. Вони задаються в розділі оголошення констант таким чином:
<ідентифікатор> : <тип> = <значення>
Тут <ідентифікатор> - ідентифікатор константи;
<тип> - тип константи;
<значення> - значення константи.
Константам, що типізуються, можна привласнювати інші значення в ході виконання програми, тому фактично вони є змінними з початковими значеннями.
Константа, що типізується, набуває вказаного в її оголошенні значення, тобто ініціюється, лише один раз: до моменту початку роботи програми. При повторному вході в блок (процедуру або функцію), в якому вона оголошена, ініціація константи, що типізується, не виробляється і вона зберігає те значення, яке мала до моменту виходу з блоку.
Константи, що типізуються, можуть бути будь-якого типа, окрім файлів. Не можна також оголосити константу-запис, що типізується, якщо хоч би одне з її полів є полем файлового типа.
Оскільки константа, що типізується, фактично не відрізняється від змінної, її не можна використовувати як значення при оголошенні інших констант або кордонів типа-діапазону.
Константи простих типів і типа String
Оголошення таких констант зазвичай не викликає труднощів, оскільки як їх значення використовуються константи, що не типізуються, або їх ідентифікатори. Приклади оголошень:
type
colors = (white, red, black); { ------- Правильні оголошення: ----- }
const
Currcol colors = red;
name String = ''Вірт Н.'';
year Word =1989;
x Real = 0.1;
min Integer = 0;
max Integer =10;
days 1..31 = 1;
answer Char = '' Y''; {------ Неправильні оголошення: ------ }
mass : array [min..max] of Real; {Не можна використовувати константи, що типізуються, як кордони діапазону}
а,b,c : Byte = 0; {Не можна використовувати список ідентифікаторів}
var NAMEF: String [22] = ''prog.pas''; {Не можна оголошувати константу, що типізується, в розділі змінних}
Константи - масиви
Як початкове значення що типізується константи-масиву використовується список констант, відокремлених один від одного комами; список полягає в круглі дужки, наприклад:
type
colors ''= (white, red, black);
const
Colstr : array [colors] of String [5] =(''white'', ''red'', ''blaсk'');
vector : array [1..5] of Byte = (0,0,0,0,0); .
При оголошенні масиву символів можна використовувати ту обставину, що всі символьні масиви і рядки в Турбо Паскалі зберігаються в упакованому форматі, тому як значення масиву-константи типа CHAR допускається завдання символьного рядка відповідної довжини. Два наступні оголошення ідентичні:
const
digit : array [0..9] of Char = (''0'', Ч'',''2'',''3'',''4'',''5'',''6'', '' 7 '', '' 8 '', '' 9 '') ;
digchr: array [0..9] of Char =0123456789'';
При оголошенні багатовимірних констант-масивів безліч констант, відповідних кожному виміру, полягає в додаткові круглі дужки і відділяється від сусідньої безлічі комами. В результаті утворюються вкладені структури безлічі, причому глибина вкладення повинна відповідати кількості змін (розмірність) масиву. Сама внутрішня безліч констант зв'язується із зміною найправішого індексу масиву.
Константи - записи
Визначення константи-запису має наступний вигляд:
<ідентифікатор> : <тип> = (<сп.знач.полей>)
Тут <ідентифікатор> - ідентифікатор константи;
<тип> - тип запису;
<сп.знач.полей> - список значень полів.
Списком значень полів є список з послідовностей вигляду: ім'я поля, двокрапка і константа. Елементи списку відділяються один від одного двоєточиямі, наприклад:
type
point = record
х, у : Real;
end;
vect = array [0..1] of point;
month = (Jan, Feb, Mar, Apr, May, Jun, Jly, Aug, Sep, Oct, Nov, Dec);
date = record d : 1..31;
m : month;
у : 1900..1999
end;
const
origon :point = (x :0; у : -1) ;
line:vector = ((x:-3.1; у: 1.5), (x: 5.9; у: 3.0)) ;
Someday: date = (d : 16; m : Mar; у : 1989);
Поля повинні вказуватися в тій послідовності, в якій вони перераховані в оголошенні типа.
Якщо в записі використовується хоч би одне поле файлового типа, такий запис не можна оголосити константою, що типізується. Для записів з варіантними полями вказується лише один з можливих варіантів констант.
Константи - безліч
Значення що типізується константи-безліч задається у вигляді правильного конструктора безлічі, наприклад:
type
days = set of 1. .31;
digc = set of '' 0 '' . . '' 9 '' ;
error = set of 1..24;
const
Workdays : days = [1..5, 8.. 12, 15.. 19, 22.. 26, 29, 30];
Evendigits: digc = [''0'', ''2'', ''4'', ''6'', ''8''];
Errorflag : error= [] ;
Константи - покажчики
Єдиним значенням що типізується константи-покажчика може бути лише NIL, наприклад:
const
pr : Real= NIL;
Питання для контролю.
-
Як задаються типізовані константи?
-
В чому різниця між типізованою константою та змінною?
-
В чому різниця між типізованою константою та константою?
-
Приведіть приклад константи простого типу.
-
Приведіть приклад константи-масиву.
-
Приведіть приклад константи-запису.
-
Приведіть приклад константи-безлічі.
-
Назвіть особливість константи-покажчика?