Модули, записи и файлы
могут использовать другие
модули. Предложение USES в модулях может следовать либо сразу за
зарезервированным словом INTERFACE, либо сразу за словом
IMPLEMENTATION. Интерфейсная часть открывается зарезервированным словом
INTERFACE. В этой части содержатся объявления всех глобальных
объектов модуля (типов, констант, переменных и подпрограмм), которые
должны стать доступными основной программе и (или) другим модулям.
При объявлении глобальных подпрограмм в интерфейсной части указывается
только их заголовок. Объявление подпрограмм в интерфейсной части
автоматически сопровождается их компиляцией с использованием
дальней модели памяти. Таким образом, обеспечивается доступ к
подпрограммам из основной программы и других модулей. Порядок
появления различных разделов объявлений и их количество может быть
произвольным. Исполняемая часть начинается зарезервированным
словом IMPLEMEN- TATION и содержит описания подпрограмм, объявленных в
интерфейсной части. В ней могут объявляться локальные для модуля объекты -
вспомогательные типы, константы, переменные и блоки, а также метки, если
они используются в инициирующей части. Описанию подпрограммы, объявленной
в интерфейсной части модуля, в исполняемой части должен
предшествовать заголовок, в котором можно опускать список формальных
переменных (и тип результата для функции), так как они уже описаны в
интерфейсной части. Но если заголовок программы приводится в полном
виде, т.е., со списком формальных параметров, то он должен совпадать
с заголовком, объявленным в интерфейсной части. Инициирующая
часть завершает модуль. Она может отсутствовать вместе с
начинающим ее словом BEGIN или быть пустой - тогда за BEGIN сразу следует
признак конца модуля (слово END и следующая за ним точка). В
инициирующей части размещаются исполняемые операторы, содержащие
некоторый фрагмент программы. Эти операторы исполняются до передачи
управления основной программе и обычно используются для подготовки ее
работы. Например, в них могут инициироваться переменные, открываться
нужные файлы, могут устанавливаться связи с другими ПК по
коммуникационным каналам и т.п. Не рекомендуется делать инициирующую
часть пустой, лучше ее опустить: пустая часть содержит пустой оператор,
которому будет передано управление при запуске программы.
1.2. Компиляция модулей.
В среде Turbo PASCAL имеются средства, управляющие способом
компиляции модулей и облегчающие разработку крупных программных
проектов. В частности, определены три режима компиляции: COMPILE, MAKE
и BUILD. Режимы отличаются только способами связи компилируемого
модуля и основной программы с другими модулями, объявленными в приложении
USES. При компиляции модуля или основной программы в режиме
COMPILE компилируется только файл, находящийся в активном окне.
По умолчанию предполагается, что используемые модули уже
откомпилированы и результаты помещены в одноименные файлы с
расширением .TPU; файл с расширением .TPU (от английского Turbo Pаscal
Unit) создается в результате компиляции модуля. В режиме МАКЕ
компилятор проверяет наличие TPU-файлов для каждого объявленного
модуля. Если какой-либо из файлов не обнаружен, то система пытается
отыскать одноименный файл с расширением .PAS, т.е. файл с исходным
текстом модуля. Если PAS-файл найден, то происходит его компиляция.
Кроме того, в этом режиме система следит за возможными изменениями
исходного текста любого используемого модуля. Если в PAS-файл
(исходный текст модуля) внесены какие-либо изменения, то независимо от
того, есть ли уже в каталоге соответствующий TPU-файл или нет, система
осуществляет его компиляцию перед компиляцией основной программы. Если
изменения внесены в интерфейсную часть модуля, то будут
перекомпилированы также и все другие модули, обращающиеся к нему.
Режим МАКЕ существенно облегчает процесс разработки крупных программ
с множеством модулей. В режиме BUILD существующие TPU-файлы
игнорируются, и система пытается отыскать и компилировать
соответствующий PAS-файл для каждого объявленного в предложении USES
модуля. После компиляции в режиме BUILD программист может быть уверен в
том, что учтены все сделанные им изменения в любом из модулей.
Подключение модуля к основной программе и их возможная
компиляция осуществляется в порядке их объявления в предложении
USES. При переходе к очередному модулю система предварительно
отыскивает все модули, на которые он ссылается. Ссылки модулей друг
на друга могут образовывать древовидную структуру любой сложности,
однако запрещается явное или косвенное обращение модуля к самому себе.
Дело в том, что Turbo PASCAL разрешает ссылки на частично
откомпилированные модули, что приблизительно соответствует
опережающему описанию подпрограммы. Если интерфейсные части любых
двух модулей независимы, Turbo PASCAL сможет идентифицировать все
глобальные идентификаторы в каждом из модулей, после чего откомпилирует
тела модулей обычным способом.
Глава 2. Задание первой части курсовой работы
Разработать модуль (схемы алгоритмов и программы), содержащие процедуры и
функции, решающие поставленную задачу :
Вариант № 21
Вычислить произведение элементов каждого столбца матрицы :
Определить максимальное значение произведения :
Разработать вызывающую программу (алгоритм и текст программы), предусмотрев
процедуру очистки экрана и вывода информации на экран с текстовыми
комментариями. Например :
Курсовую работу выполнил студент группы А – 61 Иванов Роман Борисович
Вариант № 21
Разработанный модуль содержит следующие программы :
Процедуру формирования элементов матрицы в интервале –1.0 до 1.0.
Функцию определения суммы элементов той строки, где находиться
максимальный элемент.
Процедуру вывода элементов матрицы.
Результаты :
Сформированная матрица :
------------------------------
------------------------------
Сумма элементов строки, где находится максимальный элемент =…….
2.1. Вызывающая программа
2.2.Процедура формирования массива А
PROCEDURE FORM
2.3.Процедура ввывода массива А
PROCEDURE VIVOD
2.4.Процедура произведения элементов массива А
PROCEDURE PR
2.5.Функция поиска максимального элемента в векторном массиве С
FUNCTION MAX
Глава 3. Модуль основной программы
unit kurp1;
interface
const n=5;
type matr=array[1..n,1..n] of real;
vect=array[1..n] of real;
procedure form(var a:matr);
procedure vivod (var a:matr);
function max(c:vect):real;
procedure pr(a:matr;var c:vect);
implementation
procedure vivod (var a:matr);
var i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
write (a[i,j]:6:2);
writeln;
end;
writeln;
end;
procedure form(var a:matr);
var i,j:integer;
begin
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random*2-1;
end;
function max( c:vect):real;
var i:integer;
m:real;
begin
m:=-2;
for i:=1 to n do
if c[i]>m then m:=c[i];
max:=m
end;
procedure pr(a:matr;var c:vect);
var i,j:integer;
begin
c[i]:=1;
for i:=1 to n do
begin
for j:=1 to n do
c[i]:=a[j,i]*c[i];
writeln('Произведение ',i,'-го столбца =',c[i]:6:4);
end;
writeln;
end;
end.
Глава 4. Основная программа
program kursovik;
uses crt,kurp1;
var a:matr;
c:vect;
begin
clrscr;
window (45,2,75,7) ;
writeln ('Курсовая работа по информатике') ;
writeln('Факультет АЭС группа А-92');
writeln ('студента: Грязина Дмитрия ');
window(1,1,80,25);
writeln('вариант 21');
window(10,8,80,20);
writeln('Разработанный модуль содержит следующие программы:');
writeln('1.Процедуру формирования элементов матрицы в интервале от 1.0
до 1.0.');
writeln('2.Процедуру вывода матрицы на экран.');
writeln('3.Процедуру определения произведения каждого столбца
матрицы.');
writeln('4.Функцию определения максимального произвелдения.');
window(1,1,80,25);
gotoxy(10,24);
writeln('Для продолжения нажмите пробел');
clrscr;
form(a);
writeln('Сформированная матрица');
vivod(a);
pr(a,c);
writeln('Максимальное произведение =',max(c):6:4);
readln;
end.
Глава 5. Результаты первой части курсовой работы
Сформированная матрица
-0.68 0.22 0.58 -0.62 -0.14
0.25 -0.11 -0.90 0.41 -0.57
0.24 -0.69 -0.84 0.28 0.71
-0.46 -0.26 0.16 0.49 -0.73
0.60 0.17 0.28 -0.77 -0.61
Произведение 1-го столбца =0.0112
Произведение 2-го столбца =-0.0007
Произведение 3-го столбца =0.0187
Произведение 4-го столбца =0.0264
Произведение 5-го столбца =0.0243
Максимальное произведение =0.0264
Глава 6. Записи.
Запись – это структура данных, состоящая из фиксированного числа
комп
| | скачать работу |
Модули, записи и файлы |