|
|
|||||||||||||||||||||||||||||||||||||||||||
|
Понедельник
21 мая 2012 года |
|||||||||||||||||||||||||||||||||||||||||||
|
Подключение стандартных процедур Turbo PascalПри использовании технологии нисходящего структурного программирования появляется возможность включать в разрабатываемые программные комплексы, созданные ранее, программные модули (процедуры), выполняющие идентичные или практически идентичные функции. Использование готовых программных модулей значительно повышает надежность программного комплекса, упрощает процесс его разработки, сокращает время разработки и снижает стоимость самой разработки. Стандартные процедуры и алгоритмыОттестированные программные модули, которые могут использоваться в других программах без каких-либо изменений или с небольшими изменениями, мы будем называть стандартными программными модулями или стандартными процедурами, а алгоритмы, которые они реализуют, — стандартными алгоритмами. Система программирования Турбо Паскаль, так же, как и другие системы программирования, имеет профессиональную библиотеку стандартных программ, однако на этапе первоначального обучения её использование вызывает определенные трудности. Следует отметить, что каждый программист, как правило, со временем сам создает значительное количество процедур, с помощью которых решаются общие для многих программ задачи (элементы оформления программ, организация интерфейса пользователь - компьютер, средства контроля и защиты от ошибок пользователя и др). Эти процедуры, являясь стандартными процедурами, могут составить постоянно пополняющуюся личную библиотеку программиста. Способы включения стандартных процедур в программуСпособ включения стандартной процедуры зависит от того, требует ли стандартная процедура каких-либо изменений для использования во вновь разрабатываемом программном комплексе или может быть включена в него и в любые другие без изменений. Рассмотрим три способа включения стандартной процедуры из библиотеки в программный комплекс. Первый способ позволяет включать стандартные процедуры после внесения в них требуемых изменений. Второй и третий способы применимы для процедур, не требующих изменений. Рассмотрим каждый из этих способов на примере разработки программы, которая имитирует сигнал звонящего телефона, прекращающегося после того, как пользователь снимет трубку (нажмёт клавишу "Пробел"). Сигнал звонящего телефона воспроизводится стандартной процедурой, записанной на диске под именем telephon.inc. Приводимые ниже примеры программ выполнялись на компьютере IBM PC 286 с частотой 16 Мгц, поэтому при их выполнении на компьютерах с другой частотой необходимо изменить значения в Delay (...) на величину, пропорциональную отношению частоты компьютера к частоте 16 или заменить оператор Delay (...) на стандартную процедуру Wait Dos, описанную в разделе 5.1.2.
{-- Telephon Процедура издает сигнал звонящего телефона telephon.inc }
PROCEDURE Telephon;
VAR
i : integer;
BEGIN
for i := 1 to 10 do begin
Sound(1200) ;
Delay(100) ;
NoSound;
end;
Delay(1500) ;
END;
Способ 1Исходный текст стандартной процедуры Telephon включается непосредственно в исходный текст разрабатываемой программы с помощью редактора, встроенного в систему программирования Турбо Паскаль, или другого текстового редактора. Использование редактора позволяет внести изменения в текст стандартной процедуры. В качестве примера в стандартной процедуре Telephon, включенной в программу DemoTelephon_l, изменена число повторений цикла (для наглядности этот оператор выделен).
PROGRAM DemoTelephon_l;
USES Crt;
PROCEDURE Telephon;
{ Процедура издает сигнал звонящего телефона }
VAR
i : integer;
BEGIN
for i := 1 to 8 do begin
Sound(1200) ;
Delay(100) ;
NoSound;
end;
Delay(1500);
END;
BEGIN
ClrScr;
GotoXY (20, 10) ;
Write ('Снимите трубку (нажмите клавишу "Пробел")');
repeat
Telephon until KeyPressed;
END.
Способ 2Стандартная процедура включается в разрабатываемую программу при её компиляции с помощью директивы компилятора [1] {$1 ИмяФайла } Расширением по умолчанию для параметра "ИмяФайла" является PAS. Для включаемых файлов допускается уровень вложения на глубину до восьми. Приводимые ниже стандартные процедуры имеют расширение INC, что сделано для того, чтобы отличить их от нестандартных процедур. Для того, чтобы при компиляции файлы с именем "ИмяФайла" были найдены, достаточно использовать один из трех возможных вариантов: 1) поместить их в каталог с файлом turbo.exe;2) установить в меню Options/Directories/Include Directories каталог, где расположены файлы с именем "ИмяФайла", например, C:\INC (в данном случае в каталоге C:\INC записаны включаемые при компиляции файлы); 3) указать непосредственно в разрабатываемой программе полное имя включаемого файла, например: {$1 c:\inc\signal_v.inc } Приводимый пример демонстрирует подключение процедуры telephon.inc в программу при её компиляции.
PROGRAM DemoTelephon_2;
USES Crt;
{$1 telephon.inc} { Процедура издает сигнал звонящего телефона }
BEGIN
ClrScr;
GotoXY (20, 10) ;
Write ('Снимите трубку (нажмите клавишу "Пробел")');
repeat
Telephon
until KeyPressed;
END.
Способ 3Текст одной или нескольких стандартных процедур оформляется в виде библиотечного программного модуля, файл которого имеет расширение TPU, и после указания его имени в разделе USES программа получает доступ к процедурам из этого модуля. Предположим, что мы создаем библиотечный программный модуль, состоящий из одной стандартной процедуры Telephon. В этом случае исходный текст процедуры необходимо переписать, как показано ниже.
UNIT Teleph_3; { Процедура издает сигнал звонящего телефона }
{ }
INTERFACE
{ }
USES Crt;
PROCEDURE Telephon;
{ }
IMPLEMENTATI ON
{ }
PROCEDURE Telephon; VAR
i : integer; BEGIN
for i := 1 to 10 do begin
Sound(1200) ;
Delay(100);
NoSound;
end;
Delay(1500);
END;
END.
После компиляции в режиме Compile с установленной директивой Destinatio = Disk создается библиотечный файл teleph_3.tpu.
Текст программы DemoTelephon_3, в котором используется этот библиотечный файл, запишется следующим образом.
PROGRAM DemoTelephon 3;
USES Crt, Teleph_3;
BEGIN
ClrScr;
Write ('Снимите трубку (нажмите клавишу 'Пробел")');
repeat
Telephon;
until KeyPressed;
END.
С методологической точки зрения предпочтительнее на начальном этапе обучения использовать первые два способа, так как они позволяют достаточно просто изменять и модифицировать тексты стандартных процедур, в то время как третий способ требует повторной работы по созданию библиотечного программного модуля в случае изменения хотя бы одной стандартной процедуры Turbo Pascal, входящей в библиотечный программный модуль. |
|
||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
:tanucik2004@ya.ru |
Copyright © TP7.INFO, 2007-2011
|
|
|
: 308-364-613 |
||
|
: +7 953 580 83 78 |