language-Modula2-0.1: examples/Modula-2_Libraries/andrea-m2/lib/fst/moremath.mod
IMPLEMENTATION MODULE MoreMath;
(* John Andrea, Mar.27/92 *)
(* This code may NOT be sold, it may be freely used and distributed *)
PROCEDURE MinInt( a, b :INTEGER ) :INTEGER;
BEGIN
IF a <= b THEN
RETURN a;
ELSE
RETURN b;
END;
END MinInt;
PROCEDURE MaxInt( a, b :INTEGER ) :INTEGER;
BEGIN
IF a >= b THEN
RETURN a;
ELSE
RETURN b;
END;
END MaxInt;
PROCEDURE MinCard( a, b :CARDINAL ) :CARDINAL;
BEGIN
IF a <= b THEN
RETURN a;
ELSE
RETURN b;
END;
END MinCard;
PROCEDURE MaxCard( a, b :CARDINAL ) :CARDINAL;
BEGIN
IF a >= b THEN
RETURN a;
ELSE
RETURN b;
END;
END MaxCard;
PROCEDURE SizeCard( a :CARDINAL ) :CARDINAL;
BEGIN
IF a < 10 THEN
RETURN 1;
ELSE
RETURN 1 + SizeCard( a DIV 10 );
END;
END SizeCard;
PROCEDURE SizeInt( a :INTEGER ) :CARDINAL;
BEGIN
IF ABS( a ) < 10 THEN
IF a < 0 THEN
RETURN 2; (* account for the minus sign *)
ELSE
RETURN 1;
END;
ELSE
RETURN 1 + SizeCard( a DIV 10 );
END;
END SizeInt;
BEGIN (* MoreMath *)
END MoreMath.