Лекція 21. Модулі

Содержание

Слайд 2

План: Модульне програмування. Структура модуля. Компіляція і використання модулів. Стандартні (вбудовані) модулі. Приклад побудови модуля користувача.

План:

Модульне програмування.
Структура модуля.
Компіляція і використання модулів.
Стандартні (вбудовані) модулі.
Приклад побудови модуля користувача.

Слайд 3

Рекомендована література: Turbo Pascal 7.0: Пер. с нем. / Винфрид и

Рекомендована література:

Turbo Pascal 7.0: Пер. с нем. / Винфрид и Фолькер

Кассера. – К.: Издательство «ДиаСофт», 2003.
Грызлов В.И., Грызлова Т.П. Турбо Паскаль 7.0. – 4-е изд., испр. – М.: ДМК Пресс, 2005.
Паскаль для персональных компьютеров: Справ. Пособие / Ю.С. Бородич, А.Н. Вальвачев, А.И. Кузьмич. – Мн.: Выш. Шк.: БФ ГИТМП «Ника», 1991.
Паскаль. Программирование на языке высокого уровня: Учебник для вузов / Т.А. Павловская. – СПб: Питер, 2003.
Программирование в среде Turbo Pascal 7.0 / Марченко А.И., Марченко Л.А.: Под ред.: Тарасенко В.П. – 8-е изд. – К.: ВЕК+, СПб: КОРОНА принт, 2004.
Зеленяк О.П. Практикум программирования на Turbo Pascal. Задачи, алгоритмы и решения. – СПб.: ООО «ДиаСофтЮП», 2002.
Слайд 4

Модульне програмування На мові Паскаль складна задача може бути розбита на

Модульне програмування

На мові Паскаль складна задача може бути розбита на більш

прості за допомогою підпрограм (процедур та функцій). Після цього програму можна розглядати у більш укрупненому вигляді – на рівні взаємодії підпрограм.
Використання підпрограм є першим кроком до підвищення ступеня абстракції програми і призводить до спрощення її структури.
Слайд 5

Модульне програмування Розбиття програми на підпрограми дозволяє запобігти надмірності коду, оскільки

Модульне програмування

Розбиття програми на підпрограми дозволяє запобігти надмірності коду, оскільки підпрограму

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

Модульне програмування Модуль – це бібліотека ресурсів, котра підключається до програми.

Модульне програмування

Модуль – це бібліотека ресурсів, котра підключається до програми.
Модуль

може містити опис типів, констант, змінних і підпрограм. У модуль, як правило, об'єднують зв'язані між собою ресурси.
Деталі реалізації модуля приховані від користувача. Модулі зберігаються у готовому, скомпільованому вигляді. Це підвищує швидкість загальної компіляції програми.
Слайд 7

Модульне програмування Після компіляції модулі зберігаються на диску в файлах з

Модульне програмування

Після компіляції модулі зберігаються на диску в файлах з розширенням

.TPU (Turbo Pascal Unit).
Модулі на мові Паскаль поділяються на:
стандартні;
модулі користувача.
Слайд 8

Структура модуля Unit ; Interface {інтерфейсна секція} … Implementation {секція реалізації} Uses , … ; …

Структура модуля

Unit <ім'я модуля>;
Interface {інтерфейсна секція}
<заголовок підпрограми 1 із указанням

параметрів>
<заголовок підпрограми 2 із указанням параметрів>

<заголовок підпрограми N із указанням параметрів>
Implementation {секція реалізації}
Uses <імя модуля1>, … ;
<заголовок без параметрів і тіло підпрограми 1>

<заголовок без параметрів і тіло підпрограми N>
Слайд 9

Структура модуля begin {секція ініціалізації} [ ; … ] end.

Структура модуля

begin {секція ініціалізації}
[ <оператор 1>;

<оператор N> ]
end.

Слайд 10

Розділ Unit містить ім'я модуля. Воно повинно співпадати з іменем файла

Розділ Unit містить ім'я модуля. Воно повинно співпадати з іменем файла

на диску (з розширенням pas), в якому міститься вихідний текст модуля.
Наприклад:
у файлі Start.pas міститься текст модуля Start:
Unit Start;

Структура модуля

Слайд 11

Структура модуля У інтерфейсній секції описуються глобальні константи, типи, змінні, процедури

Структура модуля

У інтерфейсній секції описуються глобальні константи, типи, змінні, процедури і

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

Структура модуля Секція реалізації повинна бути останньою секцією модуля. Вона може

Структура модуля

Секція реалізації повинна бути останньою секцією модуля.
Вона може складатися:
або


тільки із зарезервованих слів begin i end (у цьому випадку модуль не містить коду ініціалізації),
або
з операторної частини, котра повинна виконуватися для ініціалізації модуля.
Слайд 13

Компіляція і використання модулів У середовищі Turbo Pascal визначені три режими

Компіляція і використання модулів

У середовищі Turbo Pascal визначені три режими компіляції:

Compile, Make, Build.
При компіляції модуля або основної програми у режимі Compile всі підключені модулі (у розділі Uses) повинні бути попередньо відкомпільовані у однойменні файли з розширенням .tpu .
Слайд 14

Компіляція і використання модулів У режимі Make компілятор перевіряє наявність tpu–файлів

Компіляція і використання модулів

У режимі Make компілятор перевіряє наявність tpu–файлів для

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

Компіляція і використання модулів У режимі Build існуючі tpu–файли ігноруються, і

Компіляція і використання модулів

У режимі Build існуючі tpu–файли ігноруються, і система

намагається відшукати відповідний pas-файл для кожного оголошеного в розділі Uses модуля та провести його компіляцію.
Слайд 16

Компіляція і використання модулів Порядок компіляції модулів У середовищі мови Паскаль

Компіляція і використання модулів

Порядок компіляції модулів
У середовищі мови Паскаль відкрити pas-файл

з кодом модуля (вважаємо, що помилки у тексті відсутні).
У головному меню встановити режим Compile/Destination/Disk.
Виконати компіляцію, використовуючи режим Compile.
При коректному виконанні пп. 1-3 на диску автоматично формується відповідний tpu-файл.
Слайд 17

Компіляція і використання модулів Готові модулі (сформовані tpu-файли) можна використовувати у

Компіляція і використання модулів

Готові модулі (сформовані tpu-файли) можна використовувати у програмах.

Для цього їх імена необхідно записати у розділі опису модулів, що використовуються, основної програми (Uses).
Якщо файли модулів розміщені не у робочому каталозі, то шлях до них необхідно вказати у головному меню середовища мови Паскаль: Options/Directories/Unit Directories.
Слайд 18

Стандартні (вбудовані) модулі У мові Turbo Pascal є дев'ять стандартних модулів:

Стандартні (вбудовані) модулі

У мові Turbo Pascal є дев'ять стандартних модулів:

Слайд 19

Стандартні (вбудовані) модулі Стандартні модулі Turbo Pascal:

Стандартні (вбудовані) модулі

Стандартні модулі Turbo Pascal:

Слайд 20

Стандартні (вбудовані) модулі Стандартні модулі Turbo Pascal:

Стандартні (вбудовані) модулі

Стандартні модулі Turbo Pascal:

Слайд 21

Стандартні (вбудовані) модулі Стандартні модулі Graph, Turbo3, Graph3 містяться в однойменних

Стандартні (вбудовані) модулі

Стандартні модулі Graph, Turbo3, Graph3 містяться в однойменних tpu-файлах.


Інші стандартні модулі входять до складу бібліотечного файла TURBO.TPL.
Модуль System підключається до кожної програми автоматично, всі інші стають доступними після підключення у розділі Uses.
Слайд 22

Приклад побудови модуля користувача Program Strings1; Uses Crt; Var St, St1:

Приклад побудови модуля користувача

Program Strings1;
Uses Crt;
Var St, St1: string; n, p,

k: byte;
BEGIN
clrscr; write (' Enter text: '); readln (St);
n:=length (St); k:=0;
St1:= Copy (St,1,1); p:=0;
repeat
if (St1='a') or (St1='A') then inc (k);
Delete (St,1,p); p:= Pos (' ',St);
St1:= Copy (St, p+1,1);
until p=0;
writeln (' K :', k:5); repeat until keypressed;
END.

Задача.
У заданому тексті підрахувати кількість слів, які починаються з літери ‘а’.

Слайд 23

Приклад побудови модуля користувача Program String2; Uses Crt; Var St, St1:

Приклад побудови модуля користувача

Program String2;
Uses Crt;
Var St, St1: string; L: char;

k: byte;
Procedure EnterData (var St: string; var L:char);
begin
clrscr;
write (' Enter text: '); readln (St);
write (' Enter small letter: '); readln (L);
end;

Текст укрупненої та вдосконаленої програми:

Слайд 24

Приклад побудови модуля користувача Procedure FindLetter (St: string; L:char; var k:

Приклад побудови модуля користувача

Procedure FindLetter (St: string; L:char; var k: byte);
var

n, p: byte;
begin
n:=length (St);
k:=0;
St1:= Copy (St,1,1); p:=0;
repeat
if (St1=L) or (St1=UpCase(L)) then inc(k);
Delete (St,1,p);
p:= Pos (' ',St);
St1:= Copy (St, p+1,1);
until p=0;
end;
Слайд 25

Приклад побудови модуля користувача BEGIN EnterData (St, L); FindLetter (St,L,k); writeln;

Приклад побудови модуля користувача

BEGIN
EnterData (St, L);
FindLetter (St,L,k);
writeln;
writeln (' Amout of the

words which begin from the set letter:‘, k:5);
repeat until keypressed;
END.
Слайд 26

Приклад побудови модуля користувача Unit MyStr; Interface Var St, St1: string;

Приклад побудови модуля користувача

Unit MyStr;
Interface
Var St, St1: string; k: byte; L:

char;
Procedure EnterData (var St: string; var L:char);
Procedure FindLetter (St: string; L:char; var k: byte);

Текст модуля:

Слайд 27

Приклад побудови модуля користувача Implementation Uses Crt; Procedure EnterData; begin clrscr;

Приклад побудови модуля користувача

Implementation
Uses Crt;
Procedure EnterData;
begin
clrscr;
write (' Enter text:

'); readln (St);
write (' Enter small letter: '); readln (L);
end;
Слайд 28

Приклад побудови модуля користувача Procedure FindLetter; var n, p: byte; begin

Приклад побудови модуля користувача

Procedure FindLetter;
var n, p: byte;
begin
n:=length (St); k:=0; St1:=

Copy (St,1,1); p:=0;
repeat
if (St1=L) or (St1=UpCase(L)) then inc(k);
Delete (St,1,p);
p:= Pos (' ',St);
St1:= Copy (St, p+1,1);
until p=0;
end;
BEGIN
END.
Слайд 29

Приклад побудови модуля користувача Program Strings3; Uses Crt, MyStr; BEGIN EnterData

Приклад побудови модуля користувача

Program Strings3;
Uses Crt, MyStr;
BEGIN
EnterData (St, L);
FindLetter (St,L,k);
writeln;
write(' Amout

of the words which begin from the set letter:', k:5);
repeat until keypressed;
END.

Текст основної програми: