44 lines
672 B
Text
44 lines
672 B
Text
MODULE EthiopianMultiplication;
|
|
|
|
FROM SWholeIO IMPORT
|
|
WriteCard;
|
|
FROM STextIO IMPORT
|
|
WriteString, WriteLn;
|
|
|
|
PROCEDURE Halve(VAR A: CARDINAL);
|
|
BEGIN
|
|
A := A / 2;
|
|
END Halve;
|
|
|
|
PROCEDURE Double(VAR A: CARDINAL);
|
|
BEGIN
|
|
A := 2 * A;
|
|
END Double;
|
|
|
|
PROCEDURE IsEven(A: CARDINAL): BOOLEAN;
|
|
BEGIN
|
|
RETURN A REM 2 = 0;
|
|
END IsEven;
|
|
|
|
VAR
|
|
X, Y, Tot: CARDINAL;
|
|
|
|
BEGIN
|
|
X := 17;
|
|
Y := 34;
|
|
Tot := 0;
|
|
WHILE X >= 1 DO
|
|
WriteCard(X, 9);
|
|
WriteString(" ");
|
|
IF NOT(IsEven(X)) THEN
|
|
INC(Tot, Y);
|
|
WriteCard(Y, 9)
|
|
END;
|
|
WriteLn;
|
|
Halve(X);
|
|
Double(Y);
|
|
END;
|
|
WriteString("= ");
|
|
WriteCard(Tot, 9);
|
|
WriteLn;
|
|
END EthiopianMultiplication.
|