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) відповідає верхньому лівому кутку вікна.


 

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

53250. Греко-перські війни 2.01 MB
  А Марафонська битва. Б Битва при Фермопілах. В Саламінська битва. А Марафонська битва.
53251. Греко-перські війни 52 KB
  А Марафонська битва; Б битва при Фермопілах; В Саламінська битва; 3. А Марафонська битва. Марафонська битва Б Битва при Фермопілах. битва при Фермопілах.
53252. Музыкальная гостиная: «Гений норвежской музыкальной сказки - Эдвард Григ» 224 KB
  Ключевая компетенция способность личности мобилизовать свои знания умения а также способы выполнения действий необходимых для адаптации и продуктивной деятельности в различных профессиональных сообществах. развитие познавательного интереса у младших школьников и эмоционального отклика на шедевры музыкальной классики воспитания у учащихся ценностного отношения к мировой культуре в процессе восприятия и творческой интерпретации произведений мировой классики; обогащения знаний учащихся о музыке как о сфере ориентированной на...
53253. Управління системою громадянського виховання в загальноосвітньому навчальному закладі 313 KB
  ТЕОРЕТИЧНІ ОСНОВИ УПРАВЛІННЯ СИСТЕМОЮ ГРОМАДЯНСЬКОГО ВИХОВАННЯ В ЗАГАЛЬНООСВІТНЬОМУ НАВЧАЛЬНОМУ ЗАКЛАДІ. Сутнісна характеристика системи громадянського виховання. Шляхи реалізації системи громадянського виховання в загальноосвітньому навчальному закладі.
53254. Що означає бути громадянином своєї держави 45.5 KB
  Мета уроку: розкрити зміст понять громадянин громадянство громадянські якості громадянські почуття і почуття; пояснити що означає бути громадянином і відчувати приналежність до своєї держави; висловлювати власне судження про те як людина може бути корисною суспільству; наводити приклади вчинків якими вони зможуть принести користь суспільству. План змісту уроку Що означає бути громадянином своєї держави.Що означає бути громадянином і відчувати приналежність до своєї держави.
53255. Майбутній громадянин України 205 KB
  2010 рік Процес виховання ― це динамічне складне явище яке здійснюється на основі цілеспрямованого і організованого формування особистості громадянина незалежної держави. Мета і завдання виховання визначаються потребами сучасного суспільноекономічного розвитку України. Виховна робота у Червонозаводській загальноосвітній школі ІІІІ ступенів №2 здійснюється відповідно до Програми системи виховання учнівської молоді згідно районної програми виховання учнівської молоді на період до 2012 року. Модель та основні структурні елементи...
53256. Гроші 59 KB
  Гроші. Що таке гроші Які асоціації викликає у вас поняття гроші 3. Саме тут ми будемо проводити дослідницьку роботу про гроші. Гроші це тема нашої роботи в економічній лабораторії.
53257. Грунти і земельні ресурси України 216 KB
  Умови ґрунтоутворення основні генетичні типи ґрунтів закономірності їх поширення. Карта ґрунтів України. Аналіз закономірностей поширення ґрунтів на території України. МЕТА: Сформувати в учнів загальну картину розміщення ґрунтів в Україні; навчити вмінню читати карту ґрунтів України схематично описувати ґрунтовий профіль визначати фізикохімічні властивості ґрунтів; пояснити учням поняття âземельні ресурсиâ підкреслити основні заходи щодо раціонального використання і охорони їх; виховувати в учнів почуття дбайливого господаря.
53258. Групповая форма работы на уроках химии 238.5 KB
  Чередов практические результаты обучения и воспитания учащихся свидетельствуют что низкая успеваемость многих школьников является результатом несоответствия между индивидуальным темпом усвоения знаний учащимися и тем что учитель предлагает выполнить на уроке. В решении вопроса качественного усвоения всеми учащимися класса базового содержания образования в соответствии с возможностями и склонностями каждого школьника важная роль отводится организации учебной деятельности учащихся. Рядом психологопедагогических исследований доказано что...