36 lines
970 B
Plaintext
36 lines
970 B
Plaintext
DEFINE VARIABLE charArray AS CHARACTER EXTENT 3 INITIAL ["A","B","C"].
|
|
DEFINE VARIABLE sizeofArray AS INTEGER.
|
|
|
|
sizeOfArray = EXTENT(charArray).
|
|
|
|
RUN GetPermutations(1).
|
|
|
|
PROCEDURE GetPermutations:
|
|
DEFINE INPUT PARAMETER n AS INTEGER.
|
|
|
|
DEFINE VARIABLE i AS INTEGER.
|
|
DEFINE VARIABLE j AS INTEGER.
|
|
DEFINE VARIABLE currentPermutation AS CHARACTER.
|
|
|
|
REPEAT i = n TO sizeOfArray:
|
|
RUN swapValues(i,n).
|
|
RUN GetPermutations(n + 1).
|
|
RUN swapValues(i,n).
|
|
END.
|
|
IF n = sizeOfArray THEN DO:
|
|
DO j = 1 TO EXTENT(charArray):
|
|
currentPermutation = currentPermutation + charArray[j].
|
|
END.
|
|
DISPLAY currentPermutation WITH FRAME A DOWN.
|
|
END.
|
|
END PROCEDURE.
|
|
|
|
PROCEDURE swapValues:
|
|
DEFINE INPUT PARAMETER a AS INTEGER.
|
|
DEFINE INPUT PARAMETER b AS INTEGER.
|
|
DEFINE VARIABLE temp AS CHARACTER.
|
|
temp = charArray[a].
|
|
charArray[a] = charArray[b].
|
|
charArray[b] = temp.
|
|
END PROCEDURE.
|