Тема Типізовані константи



 

У Турбо Паскалі допускається використання констант, що типізуються. Вони задаються в розділі оголошення констант таким чином:

<ідентифікатор>: <тип> = <значення>

Тут <ідентифікатор> - ідентифікатор константи;

<тип> - тип константи;

<значення> - значення константи.

Константам, що типізуються, можна привласнювати інші значення в ході виконання програми, тому фактично вони є змінними з початковими значеннями.

Константа, що типізується, набуває вказаного в її оголошенні значення, тобто ініціюється, лише один раз: до моменту початку роботи програми. При повторному вході в блок (процедуру або функцію), в якому вона оголошена, ініціація константи, що типізується, не виробляється і вона зберігає те значення, яке мала до моменту виходу з блоку.

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

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

Константи простих типів і типа 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!