
- •14. Модули
- •14.1. Введение
- •14.2. Форма модульной программы
- •14.3. Стандарты структурного программирования
- •14.4. Модули в турбо-паскале
- •Interface
- •Implementation
- •14.5. Использование модулей
- •14.6. Стандартные модули турбо-паскаля
- •14.7. Пример использования модулей
- •Содержимое базы данных в памяти хранится в массиве
- •Interface
- •Контрольные вопросы
14.7. Пример использования модулей
В качестве примера, иллюстрирующего использование модуля, воспользуемся программой работы с базой данных, рассмотренной выше (см. раздел 10.8). Текст, разработанной там программы предложено оформить как монопрограмму, включив в него, в раздел объявлений, все подпрограммы, реализующие отдельные операции с базой.
Применение модулей позволит разбить единственный файл на несколько файлов, поместив в один из них основную программу, а в другие файлы (один или несколько по желанию программиста) - подпрограммы, размещенные в модулях Турбо Паскаля. Ниже приведен один из возможных вариантов такой организации программы.
О
Program
Base;
{Программа работы с простейшей базой
данных.
записей,
а на диске - в типизированном файле
}
Uses
CRT,
MyProc,
{Подключить процедуры работы с базой
в памяти}
MyFile;
{Подключить модуль работы с файлом} Var
OperCode:char;
{код выбранной операции} procedure
ShowMenu; begin
writeln('----------------------------------------------');
writeln('Операции
базы данных:');
writeln('
добавить запись (1)');
writeln('
просмотреть содержимое (2)');
writeln('
искать неуспевающих (3)');
writeln('
вывести в текстовый файл (4)');
writeln('
сохранить базу (5)');
writeln('
конец работы (6)');
write('Введите
номер операции _'); end;
begin
clrscr;
{очистить содержимое экрана. }
OpenBase;
{восстановить базу из файла ’group.dat’}
repeat
ShowMenu;
{вывод меню}
Readln(OperCode);
{читать код клавиши}
case
OperCode of ’1’
: AddStudent; {добавить запись в базу}
’2’
: View;
{отображение содержимого базы}
’3’
: Search;
{поиск и отображение двоечников}
’4’
: ToFile;
{вывод в текстовый файл}
’5’
: SaveBase;
{сохранение базы в файле ’group.dat’}
end;
until
OperCode=’6’; end.
Содержимое базы данных в памяти хранится в массиве
М
Unit
MyFile; Const
MaxStudents
= 10; {максимальное
число
записей
в
базе.} Type
TStudent
= record
{запись
со сведениями об одном студенте}
Name
: string[25]; {фамилия}
Estimations:array[1..3]
of
2..5; {оценки}
end; Var
Students
: array[1..
MaxStudents] of
TStudent;
{текущая
база в оперативной памяти}
NStud
: integer;
{фактическое число записей в базе}
procedure
OpenBase; {Загрузить базу в оперативную
память} procedure
SaveBase; {Сохраненить базу в файле
'group.dat'} procedure
ToFile; {вывод в текстовый файл}
Implementation procedure
OpenBase; var n:integer; begin
<здесь
поместить текст процедуры> end;
{OpenBase}
procedure
SaveBase; {сохранение базы в файле 'group.dat'} var
k:integer; begin
<здесь
поместить текст процедуры> end;
procedure
ToFile; {вывод
в
текстовый
файл} var
namefile:string;
{имя
текстового
файла}
textfile:text;
{файловая
переменная
текствого
файла}
k:integer; begin
<здесь
поместить текст процедуры> end;
end.Interface
М
Unit
MyProc; Interface
Uses
MyFile;
{подключить для использования переменных
NStud
и Students, объявленных в
разделе
Interface
этого модуля }
procedure
AddStudent; {добавить запись в массив Students}
procedure
View; {отобразить содержимое базы}
procedure
Search; {поиск и отображение двоечников}
Implementation
procedure
Search; {поиск
и
отображение
двоечников} var
k:integer;
n:integer;
{число
неуспевающих}
begin
<здесь
поместить текст процедуры>
end;
{}
procedure
View; {отображение содержимого базы}
var
k:integer;
begin
<здесь
поместить текст процедуры> end;
procedure
AddStudent; {Добавить
новую
запись
в
массив
Students} var
k:integer;
estimate:integer;
exist:boolean; begin
<здесь
поместить
текст
процедуры>
end;
end.
Как видно из текста примера, программа, разбитая на три файла, стала более наглядной, а выделение процедур в отдельные файлы позволяет проводить отладку процедур по частям, что упрощает процесс отладки. Разумеется, в этом случае может потребоваться написать отладочные программы (одну или несколько). Но это намного проще и удобнее для отладки. А уже после того, как отдельные процедуры будут гарантированно правильно работать, можно использовать их в главной программе.