Permutations: Difference between revisions

Content added Content deleted
m (→‎{{header|Perl 6}}: 'singularizer' not needed)
No edit summary
Line 4,866: Line 4,866:


let () = show_perms [1;2;3;4]</lang>
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}}==
=={{header|PARI/GP}}==