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

Лекции по предмету «Программирование»
Информация о работе
  • Тема: Модули. Модульное программирование
  • Количество скачиваний: 6
  • Тип: Лекции
  • Предмет: Программирование
  • Количество страниц: 3
  • Язык работы: Русский язык
  • Дата загрузки: 2014-11-06 13:09:03
  • Размер файла: 14.91 кб
Помогла работа? Поделись ссылкой
Информация о документе

Документ предоставляется как есть, мы не несем ответственности, за правильность представленной в нём информации. Используя информацию для подготовки своей работы необходимо помнить, что текст работы может быть устаревшим, работа может не пройти проверку на заимствования.

Если Вы являетесь автором текста представленного на данной странице и не хотите чтобы он был размешён на нашем сайте напишите об этом перейдя по ссылке: «Правообладателям»

Можно ли скачать документ с работой

Да, скачать документ можно бесплатно, без регистрации перейдя по ссылке:

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

Что такое модуль.
Модуль (блок, UNIT) - самостоятельная программная единица, ресурсы которой могут быть использованы другими программами.
Очень краткая историческая справка.
Структурное программирование не предполагает наличия модулей. Впервые понятие модуль (UNIT-концепция) было введено Н. Виртом для языка более высокого уровня Модула-2. Позднее этот термин и способ построения программ были реализованы и в других языках. В Turbo Pascal модульное программирование используется с 4-й версии.
Использование модулей считается прогрессивным подходом в программировании.
Структура модуля
Вы уже неоднократно сталкивались с понятием модуль (или библиотека, что одно и тоже), когда использовали в своих программах модули GRAPH.TPU и CRT.TPU. Это стандартные модули, внутренняя организация которых нам недоступна, но доступны для использования процедуры, функции и другие элементы программирования входящие в данные библиотеки. Недоступность внутренней организации модуля является одной из отличительных особеностей модулей.
Модуль состоит из следующих частей:
1. Заголовок модуля.
2. Интерфейсная часть. {описания видимых объектов}
3. Реализационная часть. {описания скрытых объектов}
4. Инициализационная часть.
Заголовок модуля
Заголовок модуля состоит из зарезервированного слова UNIT после которого записывается имя модуля. Имя модуля, это обычный идентификатор, к которому добавляется ещё одно требование: совпадение имени модуля с именем файла в котором он хранится. Поэтому имя модуля не может состоять более чем из восьми символов (ограничение MS-DOS).
Так как модуль представляет собой самостоятельную программную единицу, то и компилируется он тоже самостоятельно (отдельно). Правда в результате компиляции мы получаем файл с расширением не EXE, как обычно, а TPU. Например BAZA.TPU. Как вы уже знаете, подключение модуля к программе, осуществляется строкой USES BAZA (или CRT, например) после заголовка программы. То есть идентификация модуля в программе осуществляется по его имени. Поэтому заголовок модуля обязателен.
Интерфейсная часть
В интерфейсной части описываются (декларируются) все константы, типы данных и переменных, процедуры и функции, доступные в этом модуле для использования внешними программами.
Интерфейсная часть начинается зарезервированным словом INTERFACE.
Модуль, как и любая самостоятельная программа, может использовать ресурсы других модулей. Они подключаются как всегда с помощью слова uses сразу после служебного слова INTERFACE. Если другие модули не используются, то эта строка отсутствует. После этого, как и в любой самостоятельной программе, могут быть:
• раздел объявления констант;
• раздел объявления типов;
• раздел объявления переменных;
• раздел объявления процедур и функций.
В разделе объявления процедур и функций указываются лишь заголовки подпрограмм. Сами подпрограммы приводятся в реализационной части.
Реализационная часть
Реализационная (исполнительная) часть включает все подпрограммы модуля. Она может также содержать локальные метки, константы, типы и переменные.
Реализационная часть начинается служебным словом IMPLEMENTATION. Затем после слова uses могут быть указаны имена модулей, которые используются подпрограммами реализационной части. Если необходимый модуль подключён в интерфейсной части, то здесь его подключать не нужно. Далее могут быть:
• раздел объявления меток;
• раздел объявления локальных констант;
• раздел объявления локальных типов;
• раздел объявления локальных переменных;
• раздел объявления процедур и функций.
При описании подпрограмм допустимо использовать сокращённые заголовки (без указания параметров подпрограммы).
Определённые в реализационной части типы данных и структуры данных недоступны извне.
Инициализационная часть
В некоторых случаях перед обращением к модулю следует провести так называемую инициализацию модуля. Это могут быть различные действия, такие как: установить связь с файлом; очистить экран и т.д. Подобные действия выполняются в инициализационной части, которая представляет собой составной оператор, содержащий вызовы необходимых процедур. Например
begin
Assign(f,data.dat);
end.
Инициализационная часть выполняется один раз, во время старта программы. Если инициализация модуля не нужна, то в разделе инициализации помещается лишь end. Пример
program ex_35_1;
uses Crt, Arf;
var a,b: real;
ch: char;
begin
Info;
Vvod(a,b);
repeat
ch := readkey;
if ch=#0 then begin
ch:=readkey;
gotoxy(1,10);
case ch of
#59: writeln(Сумма ,sum(a,b));
#60: writeln(Разность ,raz(a,b));
#61: writeln(Частное ,chs(a,b));
#62: writeln(Произведение ,pro(a,b));
#63: vvod(a,b);
end;
end;
until ch=#68;
end.
Unit Arf;
Interface
Procedure Info;
Procedure Vvod(var x,y: real);
Function Sum(x,y: real): real;
Function Raz(x,y: real): real;
Function Pro(x,y: real): real;
Function Chs(x,y: real): real;
Implementation
uses Crt;

Procedure Info;
Begin
Writeln(F1 - сумма);
Writeln(F2 - разность);
Writeln(F3 - частное);
Writeln(F4 - произведение);
Writeln(F5 - ввод новых чисел);
Writeln(F10 Выход);
End;
Procedure Vvod;
Begin
GotoXY(1,8);
Write(Введите первое число ); Readln(x);
Write(Введите второе число ); Readln(y);
End;
Function Sum;
begin Sum:=x+y; end;
Function Raz;
begin Raz:=x-y; end;
Function Chs;
begin Chs:=x/y; end;
Function Pro;
begin Pro:=x*y; end;
Begin
ClrScr;
End.