Permutations: Difference between revisions
Content added Content deleted
SqrtNegInf (talk | contribs) 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}}== |