Permutations: Difference between revisions

no edit summary
m (→‎{{header|Perl 6}}: 'singularizer' not needed)
No edit summary
Line 4,866:
 
let () = show_perms [1;2;3;4]</lang>
 
=={{header|OpenEdge/Progress}}==
<lang OpenEdge/Progress>
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. </lang>
{{out}}
<pre>ABC
ACB
BAC
BCA
CAB
CBA</pre>
 
=={{header|PARI/GP}}==
Anonymous user