68984

Модулі. Модуль і його структура

Лекция

Информатика, кибернетика и программирование

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

Украинкский

2014-09-28

49.5 KB

1 чел.

Лекція № 13

Тема: Модулі

План заняття:

  1.  Модуль і його структура
  2.  Стандартні модулі
  3.  Процедури і функції модуля CRT

Модуль і його структура

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

Структура модуля має такий вигляд:

unit <ім'я>

interface

uses <список модулів>

{відкриті оголошення}

implementation

uses <список модулів>

{власні оголошення}

{реалізація процедур і функцій}

begin

{коди ініціалізації}

end

Модуль починається зі слова unit, яке разом з іменем є заголовком модуля. Наступне службове слово interface означає початок секції інтерфейсу модуля, доступного для всіх інших модулів і програм, які використовують цей модуль. В інтерфейсі модуля можуть бути оголошені сталі, типи даних, змінні, процедури і функції. Будь-яка програма, що застосовує цей модуль, має доступ до всіх елементів, оголошених у його інтерфейсі. Щодо процедур і функцій, то в секції інтерфейсу зазначені тільки їхні заголовки, а самі оператори, що реалізують їх, описані в наступній секції реалізації.

Секція інтерфейсу закінчується словом implementation, яке одночасно розпочинає секцію реалізації. Все, що описане в секції інтерфейсу, є доступним секції реалізації. Крім цього, в секції реалізації можуть бути свої описи, уже недоступні програмам, що використовують цей модуль. Ці описи використовують процедури і функції, зазначені у секції інтерфейсу. Ці процедури і функції повторно описують в секції реалізації, їхній заголовок може бути такий же, як у секції інтерфейсу, або мати коротку форму, що містить слово procedure (function), після якого йде ім'я без зазначення параметрів і типу. Підпрограми секції реалізації, не описані в секції інтерфейсу, повинні мати повний заголовок.

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

Секція реалізації розміщена між словами implementation і end. Якщо ж перед end є слово begin і деякі оператори, то одержаний складений оператор стає секцією ініціалізації модуля. В цій секції відбувається ініціалізація структур даних, що їх використовує модуль або які доступні програмам, що застосовують цей модуль. Також тут відкриваються файли, які використовуються в програмах. Під час виконання програми секцію ініціалізації викликає тіло програми, що застосовує модуль. Якщо ж у програмі є декілька модулів, то спочатку будуть викликані секції ініціалізації всіх модулів, а потім послідовно виконуються оператори з тіла програми.

Відтрансльовані модулі зберігаються в спеціальному двійковому форматі, стандартні - у файлі TURBO.TPL (вони автоматично завантажуються в пам'ять разом з Турбо Паскалем).

Для використання модулів треба, щоб після заголовка програми було речення uses, а далі зазначений список імен усіх модулів, що їх використовує програма. Наприклад:

program PRG;

uses MOD1, MOD2, MOD3;

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

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

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

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

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

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

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

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

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

Процедури і функції модуля CRT

У модулі CRT об'єднані підпрограми, які дають змогу керувати режимами екрана, розширеними кодами клавіатури, кольором, вікнами, звуковими сигналами. Завдяки їм можна підвищити швидкість виконання операцій з екраном. У разі використання модуля CRT інформація, яка виводиться на екран, буде надіслана базовій системі введення-виведення (BIOS) або безпосередньо у відеопам'ять. Це значно підвищує швидкість виведення порівняно із виведенням за допомогою засобів операційної системи DOS.

Для того, щоб використати модуль CRT, його ім'я треба зазначити в операторі uses програми:

uses CRT;

У модулі CRT реалізовані такі процедури і функції:

AssignCrt- пов'язує текстовий файл з логічним пристроєм Crt;

ClrEoL - вилучає всі символи, починаючи з позиції курсора до кінця рядка, не рухаючи курсора;

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

Delay - припиняє виконання програми на зазначений у мі-лісекундах час;

DelLine - вилучає рядок, у якому є курсор, і пересуває всі рядки, розміщені нижче, на один рядок вгору;

GotoXY- розміщує курсор у позицію екрана з координатами (X,Y);

HighVideo - задає підвищену яскравість символів;

InsLine - вставляє порожній рядок на місце, де є курсор;

KeyPressed — повертає значення true, якщо клавіша на клавіатурі натиснута, і false - у протилежному випадку;

LowVideo - вимикає підвищену яскравість символів;

NormVideo - задає стандартну яскравість символів;

NoSound - вимикає внутрішній голосник;

ReadKey — читає символ з клавіатури;

Sound - вмикає внутрішній голосник;

TextBackGround - задає колір тла;

TextColor - задає колір символів;

TextMode - задає певний текстовий режим;

Window - відображає на екрані текстове вікно;

WhereX - повертає поточну координату X курсора, що стосується активного вікна;

WhereY - повертає поточну координату 7 курсора, що стосується активного вікна.

Розглянемо наведені процедури і функції детальніше.

У разі підключення модуля CRT автоматично виконуються оператори процедур

AssignCrt(lnput);                  Reset(lnput);

AssignCrt(Output);               Rewrite(Output);

Ці оператори, замість стандартних файлів уведення і виведення DOS, призначають стандартні вхідні і вихідні текстові файли. Перепризначення вхідних і вихідних файлів надалі не допустиме доти, доки для них не буде виконане зворотне пере-призначення і не відбудеться перехід до стандартного введення і виведення за допомогою операторів

Assign(lnput, ' ');                  Reset(lnput);

Assign(Output, ' ');               Rewrite(Output);

Процедура AssignCrt автоматично пов'язує стандартне введення і виведення з пристроєм CRT. Однак такий же зв'язок можна налагодити для обміну з файлами, відмінними від стандартних:

AssignCrt(f);{файл f пов'язується з пристроєм CRT} Rewrite(f);    {файл f відкривається для виведення}

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

Для відображення на екрані вікна в текстовому режимі використовують процедуру Window(X1, Y1, X2, Y2: word)

ТутX1,Y1 - координати верхнього лівого кута вікна,X2, Y2 -нижнього правого. Унаслідок застосування цієї процедури вікно стає активним, а курсор розміщується в позиції з координатами (1,1) створеного вікна. Сама процедура Window інтерпретує власні параметри в абсолютних, а не у відносних координатах попереднього текстового вікна. Після завершення роботи програми параметри текстового режиму відновлюються автоматично, тобто вікном стає увесь екран.

Щоб одержати мінімальні і максимальні координати створеного вікна, можна скористатися функціями Lo і Ні:

Х1 :=Lo(WindMin)+1;             X2:=Lo(WindMax)+1;

Y1 :=Hi(WindMin)+1;             Y2:=Hi(WindMax)+1;

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

(1,1).

Для задання текстового режиму виведення інформації застосовують процедуру

TextMode( Mode: word)

Параметр процедури TextMode може задавати як ім'я сталої, що визначає режим виведення, так і її числовий еквівалент. Якщо режим не заданий, то за замовчуванням буде режим, визначений сталою BW40 (її числовий еквівалент - 0), що відповідає роздільній здатності екрана 40x25 і чорно-білому режиму для кольорового адаптера.

Положенням курсора в модулі CRT керують процедура GotoXY і функції WhereX і WhereY.

Процедура

GotoXY(X, Y: word) розміщує курсор у позицію поточного вікна з відносними координатами (X, Y), у цьому випадку позиція (1, 1) відповідає верхньому лівому кутку вікна.


 

А также другие работы, которые могут Вас заинтересовать

70568. Стихійні лиха та небезпечні природні явища 136.5 KB
  Атмосферні бурі смерчі урагани грози зливи та снігопади град ожеледь посухи пожежі заморозки екстремально низькі температури обмерзання високих споруд та літальних апаратів. За останні роки пожежі стали все частішим явищем які призводять до виникнення трагічних надзвичайних ситуацій.
70569. Целевые аудитории паблик рилейшнз в политической коммуникации 141 KB
  Взаимоотношения со СМИ в рамках избирательной кампании. Учитывается и роль таких факторов как деятельность СМИ характер ведения избирательной кампании влияние друзей знакомых экономическая и политическая конъюнктура. с включением поэтапно субъективных факторов личных оценок...
70570. Вычислительная математика 4.17 MB
  Для оценок погрешностей при вычислении функций аргументами которых являются приближенные числа более полным оказывается общее правило основанное на вычислении приращения погрешности функции при заданных приращениях погрешностях аргументов.
70572. Системы линейных уравнений 693.5 KB
  Запишем систему линейных алгебраических уравнений с неизвестными: Совокупность коэффициентов этой системы запишем в виде таблицы: Данная таблица элементов состоящая из строк и столбцов называется квадратной.
70573. УПРАВЛЕНИЕ БАЗАМИ ДАННЫХ 1.38 MB
  Теперь когда многообразный компьютерный мир стал столь коммуникабельным разработчики и пользователи хотят без особых проблем взаимодействовать с множеством баз данных разработанных индивидуально. Пользователи вводят команды SQL в интерактивных программах с целью выборки данных...
70574. Износ деталей и промышленного оборудования 18.04 KB
  Срок службы оборудования определяется износом его деталей - изменением размеров, формы, массы или состояния его поверхностей вслед изнашивания, т.е. остаточной деформации от постоянно действующих нагрузок либо разрушения поверхностного слоя при фении.
70575. Создание, регистрация, лицензирование и расширение деятельности кредитной организации 24.75 KB
  Для оценки финансового положения учредителей и участников УК кредитных организаций Банк России либо ТУБР вправе запрашивать у учредителей кредитной организации любую информацию о финансовом положении и деятельности лиц способных прямо или косвенно определять решения принимаемые...
70576. Реформа банковской системы России 25.56 KB
  Преимущественно экстенсивный характер развития оказал негативное влияние на устойчивость банков что проявилось в условиях международного финансового кризиса и потребовало принятия Правительством Российской Федерации и Банком России экстренных мер по обеспечению системной стабильности...