Как разделить программу на модули паскаль

Исходный текст каждого модуля хранится в отдельном файле с расширением .pas. Модуль состоит из секций (разделов). Общая структура модуля:

ВНИМАНИЕ Имя файла, в котором хранится модуль, должно совпадать с именем, заданным после ключевого слова unit.

Модуль может использовать другие модули, для этого их надо перечислить в операторе uses, который может находиться только непосредственно после ключевых слов interface или implementation. Если модули подключаются к интерфейсной части, все константы и типы данных, описанные в интерфейсной секции этих модулей, могут использоваться в любом описании в интерфейсной части данного модуля. Если модули подключаются к части реализации, все описания из этих модулей могут использоваться только в секции реализации.

В интерфейсной секции модуля определяют константы, типы данных, переменные, а также заголовки процедур и функций. Полностью же подпрограммы описываются в секции реализации, скрытой от пользователя модуля. Это естественно, поскольку для применения подпрограммы требуется знать только информацию, которая содержится в ее заголовке.

Создание модулей на языке Pascal

Кроме того, в этой секции можно определять константы, типы данных, переменные и внутренние подпрограммы. Они используются внешними элементами модуля и видны только в секции реализации.

Секция инициализации предназначена для присваивания начальных значений переменным, используемым в модуле или в программе, к которой он подключен. Операторы, расположенные в секции инициализации модуля, выполняются перед операторами основной программы. Если к программе подключено более одного модуля, их секции инициализации вызываются на выполнение в порядке, указанном в операторе uses.

В оболочках Borland Pascal и Turbo Pascal результат компиляции по умолчанию размещается в оперативной памяти и на диск не записывается. Поэтому для сохранения скомпилированного модуля на диске требуется установить значение пункта Compile(Destination в значение Disk. Компилятор создаст файл с расширением .tpu, который надо переместить в специальный каталог, путь к которому указан в пункте меню Options(Directories в поле Unit Directories.

Читайте также:
Составить алгоритм и написать программу для решения задачи согласно своему варианту

В качестве примера оформим в виде модуля подпрограмму вычисления среднего арифметического значения элементов массива из пример 4.1 (пример 4.6).

type mas = array[1 .. n] of real;

procedure average(x : mas; var av : real);

procedure average(x : mas; var av : real);

for i := 1 to n do av := av + x[i];

Листинг 4.6. Пример оформления модуля (html, txt)

Список параметров подпрограммы в разделе реализации указывать не обязательно.

Источник: studfile.net

Разделить программу на модули — Turbo Pascal

Есть программа. Помогите ее разбить и часть запихать в модуль, что бы все работало, а то у меня не получается.

program two_Funkcii; const e = 0.0001; type fun = function(x:real) : real; function f1(x:real) : real; var n:integer; s,t:real; begin n:=0; t:=1; s:=t; while abs(t)>=e do begin n:=n+1; t:=t*x/n; s:=s+t; end; f1:=s; end; function f2(x:real) : real; var n:integer; s,t:real; begin n:=1; t:=x; s:=t; while abs(t)>=e do begin n:=n+1; t:=t*x*x/((2*n-2)*(2*n-1)); s:=s+t; end; f2:=s; end; procedure rascet(x1,x2:real;y,z:fun); begin writeln(‘S1=’,y(x1):0:4); writeln(‘S2=’,z(x2):0:4) end; begin rascet(2.1,2.7,f1,f2); readln; end.

Код к задаче: «Разделить программу на модули»

Листинг программы

Уроки на языке Pascal. Урок 19. Модуль (Unit).


unit funcs; interface type fun = function(x: real) : real; function f1(x: real): real; function f2(x: real): real; procedure rascet(x1, x2: real; y, z: fun); implementation const e=0.0001; function f1(x: real): real; var n: integer; s, t: real; begin n:=0; t:=1; s:=t; while abs(t)>=e do begin n:=n+1; t:=t*x/n; s:=s+t; end; f1:=s; end; function f2(x: real): real; var n: integer; s, t: real; begin n:=1; t:=x; s:=t; while abs(t)>=e do begin n:=n+1; t:=t*x*x/((2*n-2)*(2*n-1)); s:=s+t; end; f2:=s; end; procedure rascet(x1, x2: real; y, z: fun); begin writeln(‘S1=’,y(x1):0:4); writeln(‘S2=’,z(x2):0:4) end; end.

Читайте также:
Логический тип данных программа

Источник: studassistent.ru

Как разделить программу на модули паскаль

Доброй ночи, программисты
Очень нужна ваша консультация: я оформляю задачу (даны 2 файла с упорядоченными числами и слить их в 3ий файл). Задачу необходимо разбить на части. Вот я попыталась разбить её, но, наверное, не правильно это сделала Проверьте пожалуйста.

ОСНОВНАЯ ПРОГРАММА(выполняется слияние)

Program leto; Uses crt, opis, sozd; Begin Clrscr; Soz; Reset(F1); i := 0; while not Eof(F1) do begin i := i + 1; Read(F1, Arr[i]); end; Reset(F2); while not Eof(F2) do begin Readln(F2, Num); j := 1; while (j 1 then Writeln(F3); Write(F3, Arr[j]); end; Flush(F3); reset(f3); Writeln(‘rezultat raboti v F3:’); while not eof(f3) do begin read (f3, i); write(i:3); end; Close(F1); Close(F2); Close(F3); writeln; Writeln(‘Rezultati sohraneni:’); Writeln(Fn1, ‘, ‘, Fn2, ‘, ‘, Fn3); Readln; end.
МОДУЛЬ ОПИСАНИЯ
Unit opis; Interface Const Fn1 = ‘file1.txt’; Fn2 = ‘file2.txt’; Fn3 = ‘file3.txt’; N = 100; var F1, F2, F3 : Text; i, j, k, Num, g : Integer; Arr : array[1..N] of Integer; Implementation End.

Модуль создания 2ух файлов с упорядоченными числами

Unit sozd; Interface Uses crt, opis; Procedure soz; Implementation Procedure soz; Begin Assign(F1, Fn1); Assign(F2, Fn2); Assign(F3, Fn3); Rewrite(F1); i := 0; while i 0 then Writeln(F1); Write(F1, i); i := i + 2; end; Flush(F1); Rewrite(F2); i := 1; while i 1 then Writeln(F2); Write(F2, i); i := i + 2; end; Flush(F2); End; End.

Источник: www.programmersforum.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru