Основы программирования на C++, PASCAL
End
End;
Procedure Summa; (Сумма дробей)
Begin
(Знаменатель дроби)
C.Q:=(A.Q*B.Q) Div NodEvklid(A.Q,B.Q);
(Числитель дроби)
C.P:=A.P*C.Q Div A.Q+B.P*C.Q Div B.Q;
Sokr(C)
End;
Procedure Raznost; (Разность дробей)
Begin
(Знаменатель дроби)
C.Q:=(A.Q*B.Q) Div NodEvklid(A.Q,B.Q);
(Числитель дроби)
C.P:=A.P*C.Q Div A.Q-B.P*C.Q Div B.Q;
Sokr(C)
End;
Procedure Proizvedenie; (Умножение дробей)
Begin
(Знаменатель дроби)
C.Q:=A.Q*B.Q;
(Числитель дроби)
С.Р:=А.Р*В.Р;
Sokr(C)
End;
Procedure Chastnoe; {Деление дробей}
Begin
{Знаменатель дроби)
C.Q:=A.Q*B.P;
{Числитель дроби)
C.P:=A.P*B.Q;
Sokr(C)
End;
Procedure Stepen; (Возведение дроби в степень)
Var I: Natur;
Begin
C.Q:=1;
C.P:=1;
Sokr(A);
For I:=l To N Do
Proizvedenie(A,C,C)
End;
Function Menshe; {отношение '<' между дробями)
Begin
Menshe:=A.P*B.Q<A.Q*B.P
End;
Function Bolshe; {отношение '>' между дробями)
Begin
Bolshe:=A.P*B.Q>A.Q*B.P
End;
Function Ravno; {отношение '=' между дробями)
Begin
Ravno:=A.P*B.Q=A.Q*B.P End;
Function BolsheRavno; (отношение '>=' между дробями)
Begin
BolsheRavno:=Bolshe(А,В) Or Ravno(A,B)
End;
Function MensheRavno; {отношение '<=' между дробями)
Begin
MensheRavno:=Menshe(А,В) Or Ravno(A,B)
End;
Function NeRavno; {отношение '<>' между дробями)
Begin
NeRavno:=Not Ravno(A,B)
End;
{Раздел инициализации модуля)
Begin
End.
При разработке модуля рекомендуется такая последовательность действий:
1. Спроектировать модуль, т.е. определить основные и вспомогательные подпрограммы и другие ресурсы.
2. Описать компоненты модуля.
3. Каждую подпрограмму целесообразно отладить отдельно, после чего «вклеить» в текст модуля.
Сохраним текст разработанной программы в файле droby.pаs и откомпилируем наш модуль. Для этого можно воспользоваться внешним компилятором, поставляемым вместе с Турбо Паскалем. Команда будет выглядеть так: трс droby.раs. Если в тексте нет синтаксических ошибок, получим файл DROBY.TPU, иначе будет выведено соответствующее сообщение с указанием строки, содержащей ошибку. Другой вариант компиляции: в меню системы программирования Турбо Паскаль выбрать Compile/Destination Disk, затем — Compile/Build.
Теперь можно подключить модуль к программе, где планируется его использование. Решим первую задачу — выполним суммирование массива дробей.
Program Sum;
Uses Droby;
Var A: Array[l..100] Of Frac;
I,N: Integer;
S: Frac;
Begin
Write('Введите количество элементов массива:');
ReadLn(N);
S.P:=0; S.Q:=1: {Первоначально сумма равна нулю)
For I:=l To N Do {Вводим и суммируем дроби)
Begin
Write('Введите числитель',I,'-й дроби:') ;
ReadLn(A[I].P);
Write('Введите знаменатель ',I,'-й дроби:');
ReadLn(A[I].Q) ;
Summa(A[I],S,S) ;
End;
WriteLn('Ответ:',S.P,'/',S.Q)
End.
Вторую задачу читателю предлагается решить самостоятельно. Как видно из примера, для подключения модуля используется служебное слово Uses, после которого указывается имя модуля. Данная строка записывается сразу же после заголовка программы. Если необходимо подключить несколько модулей, они перечисляются через запятую.
При использовании ресурсов модуля программисту совсем не обязательно иметь представление о том, как работают вызываемые подпрограммы. Достаточно знать назначение подпрограмм и их спецификации, т. е. имена и параметры. По такому принципу осуществляется работа со всеми стандартными модулями. Поэтому если программист разрабатывает модули не только для личного пользования, ему необходимо выполнить полное описание всех доступных при подключении ресурсов.