RosettaCodeData/Task/Combinations/Modula-2/combinations.mod2

37 lines
585 B
Plaintext

MODULE Combinations;
FROM STextIO IMPORT
WriteString, WriteLn;
FROM SWholeIO IMPORT
WriteInt;
CONST
MMax = 3;
NMax = 5;
VAR
Combination: ARRAY [0 .. MMax] OF CARDINAL;
PROCEDURE Generate(M: CARDINAL);
VAR
N, I: CARDINAL;
BEGIN
IF (M > MMax) THEN
FOR I := 1 TO MMax DO
WriteInt(Combination[I], 1);
WriteString(' ');
END;
WriteLn;
ELSE
FOR N := 1 TO NMax DO
IF (M = 1) OR (N > Combination[M - 1]) THEN
Combination[M] := N;
Generate(M + 1);
END
END
END
END Generate;
BEGIN
Generate(1);
END Combinations.