Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab-Paskal-18(МОДУЛЬ crt).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
82.43 Кб
Скачать

Лабораторна робота №18

 Тема: Використання процедур і функцій модуля CRT

 Мета: Одержання практичних навичок опису модулів та їх використання в програмах на мові програмування Паскаль.

  1. Теоретична частина.

Модуль (UNIT) – програмна одиниця, текст якої компілюється незалежно (автономно). Вона включає означення констант, типів даних, змінних, процедур та функцій, що є доступними для використання в основних визиваючих програмах. Однак їх внутрішня структура (тексти програм і т.п.) є закритою для користувача.

Розглянемо структура модуля. До цього часу ми користувались вже готовими модулями Wincrt, Windos. Сам по собі модуль складається з наступних частин:

UNIT Заголовок,

INTERFACE Інтерфейсна частина,

IMPLEMENTATON Реалізаційна частина,

BEGIN

Ініціалізаційна частина.

END;

Заголовок модуля мало відрізняється від заголовка програми. В модулі замість зарезервованого слова “PROGRAM” використовується слово “UNIT”. Однак є одна особливість у виборі імені модуля. Вибираючи ім’я програми, ми намагаємося, щоб воно не співпадало із власними іменами об’єктів (процедур, функцій тощо) всередині програми. У модулі до цієї вимоги додається ще вимога співпадання імені модуля з іменем файла, в якому він зберігається.Тому ім’яодуля не може складатисябільш ніж восьми символів.

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

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

Слідом за оператором USES в інтерфейсній частині описуються доступні ззовні й необхідні для описаних процедур та функцій означення типів даних, констант та змінних.

Всі процедури та функції, що є доступними для загального використання та означені в даному модулі, повинні бути описаними в інтерфейсній частині своїм рядком-заголовком з вказуванням типів параметрів. Сам текст програми цих процедур та функцій знаходиться (з дублем їх заголовка) в реалізаційній частині.

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

UNIT Leer; {LEER.PAS – TP версія після 5.0}

INTERFACE

{Ця частина пуста.}

IMPLEMENTATION

USES WinCrt;

BEGIN

ClrScr;

END.

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

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

Ініціалізаційна частина модуля відповідає головній програмі – BEGIN .. END. Наведені тут оператори виконуються першими, тобто ще до тієї головної програми, в яку включено даний модуль.

Для ілюстрації повернемось до нашого прикладу “Leer”-модулю. Він містить в своїй ініціалізаційній частині оператор “ClrScr”, який взято в операторні дужки “BEGIN … END”. При виконанні програми “TUTWENING.PAS”

PROGRAM TutWenig;

{ TUTWENING.PAS

Ілюструє правило виконання операторів ініціалізаційної частини включеного модуля ПЕРЕД операторами, що входять в головну програму.}

USES

Leer;

BEGIN

WriteLn(‘Hallo!!!’);

END.

Спершу відбудеться ініціалізація включеного сюда модуля “Leer”, тобто виконається оператор “ClrScr”, й екран очиститься.далі розпочнеться виконання головної програми, й на екран буде видано повідомлення “Hallo!!!”.

Зауважимо, що при компіляції модуля генерується файл з розширенням .TPU

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]