Прості константи
Приведемо синтаксичні діаграми опису простих констант.
const
{ Числові константи }
Length = 100;
MinNeg = -1; MaxNeg = -32678; Numb = 7.87e-3;
{ Логічні константи }
Boo11= True; Bool2 = False;
{ Символьні константи }
Char7 = '7'; CharCR = #13;
{ Рядкові константи }
Str1 = 'Turbo’; Str2 = ' Pascal’;
|
Крім простих констант Turbo Pascal допускає використання константних виразів, які можуть бути обчислені під час компіляції програми. Якщо припускати, що нижчеподані константи будуть розташовуватися після вищенаведених, то наступні оголошення будуть припустимими.
const
ChrLength = Chr(Length);
Mean = (MaxNeg - MinNeg) div 2;
BoolAnd = Boo11 and Boo12;
Code0fChar7 = 0rd(Char7);
Name = Str1 + Str2 + CharCR;
|
Константні вирази описуються точно по таким же правилам, що й звичайні вирази. Однак перелік припустимих у константних виразах стандартних функцій обмежений наступними функціями:
Abs, Chr, Hi, Length, Lo, Odd, Ord, Pred, Ptr, Round, SizeOf, Succ, Swap, Trunc
|
Типізовані константи
В описі типізованих констант указується як значення константи, так і її тип.
Типізовані константи фактично є змінними зі статичним класом пам'яті. Тобто такими, які одержують описане для них значення тільки один раз на початку виконання програми, а при кожному новому вході в процедуру (функцію), де вони оголошені, заново не ініціалізуються й зберігають своє значення, отримане під час попереднього виклику процедури (функції). Типізовані константи можна використовувати точно так само, як і змінні того ж самого типу, і вони можуть з'являтися в лівій частині оператора присвоювання.
const
Arr_Length : Integer = 100;
Step : Real = 0.001;
Flag : Boolean = False;
LineFeed : Char = #10;
Newline : String [2] = #13#10
Name : String [14] = 'Turbo Pascal’;
var
Buffer : array[0..1023] of Byte;
const
Bu£ferOfs : Word = Ofs(Buffer);
BufferSeg : Word = Seg(Buffer);
Ptr : Pointer = @Buffer;
|
Оскільки типізована константа фактично являє собою ініціалізуєму змінну, то вона не може використовуватися в оголошеннях інших констант або типів.
Типізовані константи стандартних типів (див. таблицю):
Типізовані константи структурованих типів
Turbo Pascal підтримує роботу з типізованими константами наступних структурованих типів:
• типу "масив" (array);
• типу "множина" (set);
• типу "запис" (record);
• об'єктного типу (object).
В описі константи структурованого типу вказуються значення кожного її компонента відповідно до певних синтаксичних правил.
Опис типів
Синтаксис підрозділу опису типів має вигляд
РОЗДІЛ ОПИСУ ТИПІВ (TYPE) служить для визначення нових типів даних, які визначаються користувачем. Кожна величина, використовувана в програмі, займає певну пам'ять комп'ютера. Тип величини визначає, як розташована ця величина в пам'яті ЕОМ. З урахуванням цього ведеться подальша обробка даних, що беруть участь у розрахунках. Кожна величина в програмі зіставляється з одним і тільки з одним типом даних.
Опис змінних
Як тип можна використати або ідентифікатор типу, що був раніше визначений у розділі опису типів, або самостійне нове визначення типу відповідно до синтаксису опису типів.
type
Colors = ( Red, Blue, Green );
Vector = array [1..100] of integer;
var
a, b, с : Real;
і, j : Integer;
Flag : Boolean;
Color : Colors;
Digit : 0 .. 9;
Season : (Spring, Summer, Autumn, Winter);
Vectl, Vect2 : Vector;
Matrix : array[1..5, 1..10] of Byte;