Тема Типізовані константи
У Турбо Паскалі допускається використання констант, що типізуються. Вони задаються в розділі оголошення констант таким чином:
<ідентифікатор>: <тип> = <значення>
Тут <ідентифікатор> - ідентифікатор константи;
<тип> - тип константи;
<значення> - значення константи.
Константам, що типізуються, можна привласнювати інші значення в ході виконання програми, тому фактично вони є змінними з початковими значеннями.
Константа, що типізується, набуває вказаного в її оголошенні значення, тобто ініціюється, лише один раз: до моменту початку роботи програми. При повторному вході в блок (процедуру або функцію), в якому вона оголошена, ініціація константи, що типізується, не виробляється і вона зберігає те значення, яке мала до моменту виходу з блоку.
Константи, що типізуються, можуть бути будь-якого типа, окрім файлів. Не можна також оголосити константу-запис, що типізується, якщо хоч би одне з її полів є полем файлового типа.
Оскільки константа, що типізується, фактично не відрізняється від змінної, її не можна використовувати як значення при оголошенні інших констант або кордонів типа-діапазону.
Константи простих типів і типа String
Оголошення таких констант зазвичай не викликає труднощів, оскільки як їх значення використовуються константи, що не типізуються, або їх ідентифікатори. Приклади оголошень:
Type
colors= (white, red, black); { ------- Правильні оголошення: ----- }
|
|
Const
Currcolcolors = red;
nameString = ''Вірт Н.'';
yearWord =1989;
x Real = 0.1;
minInteger = 0;
maxInteger =10;
days1..31 = 1;
answerChar = '' 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;
Питання для контролю
1. Як задаються типізовані константи?
2. В чому різниця між типізованою константою та змінною?
3. В чому різниця між типізованою константою та константою?
4. Приведіть приклад константи простого типу.
5. Приведіть приклад константи-масиву.
6. Приведіть приклад константи-запису.
7. Приведіть приклад константи-безлічі.
8. Назвіть особливість константи-покажчика?
Дата добавления: 2015-12-16; просмотров: 15; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!