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


 

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

52958. ПРОГРАМА ФІЛОСОФСЬКО-ПРАВОВОГО КЛУБУ «ФЕМІДА» 145.5 KB
  Мета програми підвищення рівня правової культури та набуття школярами необхідних правових знань формування у них поваги до права. Поставлена мета передбачає вирішення таких завдань: сприяти формуванню у дітей розуміння фундаментальних принципів і цінностей таких як права людини демократія правова держава тощо що складають основу демократичного суспільства в Україні; ознайомити учнів із основами правознавства важливою роллю права в житті окремої особистості та всього суспільства прищепити інтерес до права та мотивувати його...
52959. Фестиваль педагогического мастерства как форма повышения профессиональной компетентности современного учителя 81 KB
  Поиск форм совершенствования качества научнометодической деятельности Гвардейского УВК привел нас к идее организации комплексного сквозного образовательного мероприятия Фестиваля По ступенькам творчества к вершинам мастерства направленного на решение актуальных задач таких как: 1. Важной задачей организаторов Фестиваля было создание условий для участия в нем большинства членов педагогического коллектива. Организаторы Фестиваля определили что таковыми условиями прежде всего должны быть: Освоение успешного опыта коллег;...
52960. Feste und Bräuche Winterfeste in Deutschland 56.5 KB
  Zu diesem Fest basteln die Kinder mit ihren Eltern Laternen. Am Abend nehmen die Kinder ihre Laternen und gehen von Haus zu Haus. Ihre Laternen leuchten, und am Himmel leuchten der Mond und die Sterne. Die Kinder singen Lieder und bekommen Süßigkeiten. Alle finden dieses Fest lustig. (der Martinstag)
52961. Feste in der Ukraine. Свята в Україні 90.5 KB
  Мета.1.Ознайомити учнів з новою лексикою до теми:"Feste in der Ukraine”; виявити відмінності святкування свят в Німеччині та в Україні; навчати вести бесіду за темою. 2.Розвивати та удосконалювати навички монологічного та діалогічного мовлення за темою; розвивати память, здогадку. 3.Виховувати в учнів любов і повагу до звичаїв та традицій німецького та українського народу
52962. Autumn Festival 56 KB
  Good morning, dear guests. I’m glad to see you. I have got a letter. It is a birthday card. I don’t know whose birthday it is. But I think you like to travel. Let’s come with me to the magic country. Neznaiko and the Queen N: Hi! My name is Neznaiko and who are you? The Queen: Hello, my dear boy. I am a queen. Are you in a good mood? N: Yes, I am.
52963. Musical Festival “The Sounds of Music” 69.5 KB
  P1 - Good afternoon, everybody. P2 - Good afternoon, dear friends. P1 - Welcome to our musical festival “The Sounds of Music” P2 - Today we are going to present you some of the most popular English and American songs. P1 - Let’s listen to a very popular American song about a little car. Children love to sing it.
52965. Les langues étrangères c’est l’avenir? 61.5 KB
  Ce pays se trouve en Europe. Le français est la langue maternelle. La population de tout le pays est 3 fois moins grande que la population de notre ville Donetsk. Dans ce pays on parle encore une langue : l’allemand. C’est le Grand-duché. Son territoire est 2600 km². Vous traversez ce petit pays pour aller de France en Allemagne. C’est quel pays ?
52966. Faits divers 54 KB
  En classe entière, l’enseignant introduit l’activité par le jeu d'associations en utilisant les photos sur les sujets: "L'accident de la route", "L'incendie", "Le cambriolage". Ces photos, elles vous font penser à quoi?