logo
методичка_1_05_ВНУ

Стандартні модулі

Стандартні модулі Турбо Паскалю, такі як Dos, System, Overlay, Graph, Crt, Printer, містяться у файлі TURBO.TPL. Вони завантажуються в пам'ять разом з Турбо Паскалем і доступні для будь-якої програми. Бібліотечний системний файл TURBO.TPL зберігається в тому ж каталозі, що й TURBO.EXE. Він має спеціальну структуру і призначений для компактного зберігання та швидкого доступу до програм, які використовуються найчастіше.

Модуль SYSTEM містить усі стандартні та вбудовані про­цедури і функції Турбо Паскалю. Він приєднується до кожної програми автоматично. Для того, щоб використати цей модуль у програмі, не потрібно його ім'я оголошувати в реченні uses цієї програми.

Модуль DOS визначає процедури і функції Турбо Паскалю, пов'язані з визначенням і заданиям часу (GetTime, SetTime), єм­ності диска (DiskSize) тощо. Тут також визначено дві програми нижнього рівня - MSDOS і INTR, які дають змогу використову­вати будь-який виклик MS DOS або системні переривання, а також деякі інші сталі і типи даних.

Модуль OVERLAY забезпечує підтримку оверлеїв.

Стандартний модуль CRT має набір спеціальних засобів для введення-виведення сталих, змінних, програм, які можна використати для роботи з екраном: робота з вікнами, керування курсором, керування кольором, звуком.

Процедури модуля CRT такі:

0) AssignCrt - призначає текстовий файл на екран;

1) СІгЕо - вилучає всі символи від біжучої позиції курсора до кінця рядка без пересування курсора;

2) ClrScr - очищає екран і розміщує курсор у верхньому лівому куті;

3) Delay- затримує на визначену кількість мілісекунд;

4) DelLine - вилучає рядок, на якому є курсор;

5) GotoXY- позиціює курсор (X- горизонтальна позиція, 7 - вертикальна);

6) HighVideo - задає високу інтенсивність символів;

7) InsLine - вставляє порожній рядок у позиції курсора;

8) LowVideo - задає низьку інтенсивність символів;

9) NormVideo - задає нормальну інтенсивність символів;

10) NoSound - вимикає внутрішній динамік;

11) Sound - запускає внутрішній динамік;

12) TextBackGround - задає колір тла.

13) TextColor - задає колір символів.

Модуль PRINTER дає змогу визначати драйвер пристрою за допомогою описаної в ньому змінної текстового файлу SLT, а також перевизначити стандартне виведення, використовуючи Write чи Writeln.

Стандартний модуль GRAPH - це набір швидкодійних, ефективних графічних підпрограм, які дають змогу викорис­товувати графічні можливості персонального комп'ютера. Цей модуль реалізує незалежний від пристрою графічний драйвер, і що підтримує графічні адаптери CGA, EGA, Hercules та ін.

Використання модулів

Для того, щоб створити власний модуль і використати його в деякій програмі, треба модуль, написаний згідно із зазна­ченою вище структурою, розмістити у файл з розширенням .PAS і відтранслювати його. Результатом транслювання замість файлу з розширенням .ЕХЕ для звичайних програм (оскільки модуль не є виконавчою програмою) буде файл з розширенням .TPU (Turbo Pascal Unit). Ім'я файлу з розширенням .PAS, що містить початковий текст модуля, повинно збігатися з іменем модуля (Unit). Компіляція відбувається як для звичайної програми - за допомогою компілятора інтегрованого середо­вища ТРС-компілятора. У результаті утворюється TPU-файл, ім'я якого збігається з іменем модуля. Для використання це ім'я зазначають у програмі після uses в інтерфейсній частині модуля, якщо цей модуль буде використаний іншим модулем. Одержаний файл можна залишити як окремий або розмістити в TUPBO.TPL (Turbo Pascal Library) за допомогою програми TPUMOVER.EXE. Ім'я файлу .TPU буде збігатися з іменем цього ж модуля.

Є декілька аспектів використання модулів у Турбо Паскалі.

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

Зокрема, під час перекомпіляції програми, яка використовує модулі, вбудований у Турбо Паскаль компілятор перевіряє дату створення файлів .PAS і .TPU та перекомпільовує тільки ті модулі, що були модифіковані після останньої компіляції програми.

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

Окремі частини програми об'єднують у модулі так. Пе­редусім доцільно об'єднати всі глобальні визначення - сталі, типи даних, змінні - в окремі прості модулі. Це зручно у ви­падках, коли інші модулі програми використовують ці гло­бальні визначення. Такі визначення може використовувати будь-який модуль, якщо вони зроблені в головній програмі.

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

Розглянемо, як програму, записану без використання мо­дульної структури, зобразити у вигляді сукупності модулів. Для цього найперше треба всі глобальні визначення виділити в окремий модуль, наприклад MOD1, а з відповідних розділів про­грами їх вилучити. Далі потрібно скопіювати процедури і функ­ції в окремий файл з іменем, наприклад MODUL, і також вилу­чити їх з програми; відкрити цей файл для редагування і на­брати такі рядки перед процедурами і функціями:

unit MODUL;

interface

uses MOD1;

implementation

де MODUL- ім'я модуля, який містить процедури і функції про­грами (ім'я цього модуля повинно збігатися з іменем файлу, куди скопійовані процедури і функції), MOD1 - ім'я модуля з глобальними визначеннями. У кінці файлу треба набрати слово end. Між словами interface і implemetation повинні бути заго­ловки всіх процедур і функцій, скопійованих у файл. Якщо модуль MODUL використовує інші модулі, їхні імена зазначають у реченні uses після імені MOD1. Після цього потрібно ском­пілювати створений файл і, повернувшись у головну програму, яка використовує одержаний модуль, додати його Ім'я в реченні uses. Одержана таким чином модульна структура програми дасть змогу з мінімальними затратами модифіковувати і пере-компільовувати програми.