Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция Pascal_mat №4_5.doc
Скачиваний:
3
Добавлен:
02.12.2018
Размер:
404.48 Кб
Скачать

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

В описі типізованих констант указується як значення константи, так і її тип.

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

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;

Опис експорту

Примітка: підрозділ exports можна використати тільки в програмах, які транслюються версіями компілятора ВР.ЕХЕ, ВРС.ЕХЕ й BPW.EXE

Підрозділи опису експортованих імен exports можуть багаторазово зустрічатися в будь-якому місці описової частини програми або динамічно зв’язуємої бібліотеки (DLL). Кожний запис у реченні exports задає ідентифікатор експортованої процедури або функції. При цьому необхідно стежити, щоб ця процедура або функція була описана до вказівки її імені в підрозділі exports. Крім того, опис експортованої процедури або функції повинне містити директиву export (без букви "s" наприкінці !). Як експортовані імена можуть виступати уточнені ідентифікатори.

Нижче показаний синтаксис опису підрозділу exports.

У підрозділах описів exports перераховуються всі процедури й функції, які експортуються даною програмою або динамічно зв’язуємої бібліотеки. Відмітимо, що хоча програма може містити речення exports, однак на практиці це зустрічається досить рідко. Як правило, воно вказується в DLL.

Речення exports допускаються тільки в зовнішньому розділі описів програми або DLL. У розділі описів процедури, функції й модуля вони використовуватися не можуть.

Кожний запис експорту може містити в собі ключове слово index, за яким треба вказати цілочислове значення в діапазоні від 1 до 32767. Число, зазначене в index, ставить у відповідність експортованій процедурі або функції спеціальне порядкове значення. Якщо в записі експорту опис index відсутній, то порядкове значення привласнюється автоматично.

Запис речення exports може містити ключове слово патe, за яким потрібна рядкова константа. Ця константа задає процедурі або функції ім'я, з яким вона буде експортуватися. Якщо опис патe в записі експорту відсутній, то процедура або функція експортується зі своїм ідентифікатором, символи якого перетворяться у верхній регістр.

Крім того, запис експорту може містити в собі ключове слово resident, при вказівці якого інформація про експорт буде залишатися в оперативній пам'яті, поки DLL завантажена. Це дозволяє істотно зменшити час пошуку підпрограми в динамічно завантажуваній бібліотеці по імені.