Л Е К Ц И Я № 9 Модульная структура программы. План: 1. Состав модуля и его разработка. 2. Разработка программ с использованием модулей
Литература: 1. Беляева Т. А. и др. Алгоритмические языки программирования. Паскаль. – Севастополь: СНИЯЭи. П, 2002 г. 2. В. В. Фаронов DELPHI Программирование на языке высокого уровня» - СПб. : Питер, 2006
Задание: 1. Проработать самостоятельно: «Типы модулей в Delphi» [2] стр. 220, 221 2. Отладить дома пример из лекции и составить структурную схему программы и модуля.
1 Состав модуля и его разработка 1. 1 Модульная организация программ Модуль - это … Модуль имеет следующую структуру: Unit <имя>; Interface <интерфейсная часть> Implementation <исполняемая часть> initialization <инициирующая часть> finalization <завершающая часть> End.
Unit Global дисковый файл Global. pas. Uses <список модулей> Здесь Uses - кодовое слово (англ. - использует); <список модулей> - список модулей, с которыми устанавливается связь; элементами списка являются имена модулей, отделяемые друг от друга запятыми, например: Uses Sys. Utils, Windows, Global; Если предложение Uses. . . используется, оно должно открывать раздел описаний основной программы. Предложение Uses в модулях может следовать либо сразу за зарезервированным словом Interface, либо сразу за словом Implementation, либо, наконец, там и там (то есть в модуле допускается два предложения Uses).
1. 2 Составные части модуля Интерфейсная часть открывается кодовым словом Interface. Unit Cmplx; Interface Type complex = record re, im: real end; Procedure Add. C(x, y: complex; var z: complex); Procedure Mul. C(x, y: complex; var z: complex);
Исполняемая часть начинается кодовым словом Implementation и содержит тела процедур и функций, объявленных в интерфейсной части. Implementation Procedure Add. C; Begin z. re: =x. re+y. re; z. im: =x. im+y. im End; End. Инициализирующая и завершающая части чаще всего отсутствуют вместе с начинающими их словами Initialization и finalization.
Unit File. Text; Interface Procedure Print(s: string); Implementation Var f: text; Const Name='Output. txt'; Procedure Print; Begin Writeln(f, s) End; Initialization {Hачало иницииpующей части} Begin Assign(f, name); Rewrite(f); Finalization {Конец иницииpующей части} Close(f); End.
2. Разработка программ с использованием модулей Разработать модуль, содержащий блоки для вычисления площадей фигур, и программу, использующую этот модуль.
Чтобы создать такой модуль, следует выбрать команду File >> New >> Unit. Модуль назван pl_di, поэтому его следует сохранить в файле pl_di. pas После создания модуля его имя нужно упомянуть в предложении Uses того модуля (или программы), в котором будут использоваться вновь созданные подпрограммы, типы, константы.
unit pl_di; interface function tr_k(a, b, c: real): real; function kvad_t(a: real): real; implementation function tr_k; var p: real; begin p: =a+b+c; tr_k: =sqrt(p*(p-a)*(p-b)*(p-c)); end; function kvad_t; begin kvad_t: =sqr(a); end.
program Project 2; {$APPTYPE CONSOLE} uses Sys. Utils, pl_di; var at, bt, ct, ak, st, sk: real; begin writeln('Enter at, bt, ct'); readln(at, bt, ct); st: =tr_k(at, bt, ct); writeln('st = ', st: 5: 2); writeln('Enter ak'); readln(ak); sk: = kvad_t(ak); writeln('sk = ', sk: 5: 2); readln end.


