{ MathLib - A math utility unit demonstrating functions and procedures }
unit MathLib;
interface
function Add(a, b: integer): integer;
function Subtract(a, b: integer): integer;
function Multiply(a, b: integer): integer;
function Divide(a, b: integer): integer;
function Power(base, exp: integer): integer;
function Factorial(n: integer): integer;
function Abs(x: integer): integer;
function Max(a, b: integer): integer;
function Min(a, b: integer): integer;
procedure Swap(a, b: integer);
function TestReturn: integer;
implementation
function TestReturn: integer;
begin
TestReturn := 10 * 10;
end;
function Add(a, b: integer): integer;
begin
Add := a + b;
end;
function Subtract(a, b: integer): integer;
begin
Subtract := a - b;
end;
function Multiply(a, b: integer): integer;
begin
Multiply := a * b;
end;
function Divide(a, b: integer): integer;
begin
if b = 0 then
Divide := 0
else
Divide := a div b;
end;
function Power(base, exp: integer): integer;
var
result, i: integer;
begin
result := 1;
for i := 1 to exp do
result := result * base;
Power := result;
end;
function Factorial(n: integer): integer;
begin
if n <= 1 then
Factorial := 1
else
Factorial := n * Factorial(n - 1);
end;
function Abs(x: integer): integer;
begin
if x < 0 then
Abs := -x
else
Abs := x;
end;
function Max(a, b: integer): integer;
begin
if a > b then
Max := a
else
Max := b;
end;
function Min(a, b: integer): integer;
begin
if a < b then
Min := a
else
Min := b;
end;
procedure Swap(a, b: integer);
var
temp: integer;
begin
temp := a;
a := b;
b := temp;
end;
end.