1 PROGRAM PERMUTATIONEN(INPUT,OUTPUT);
3 VAR I,N,NFAKTORIELLE: INTEGER;
4 C: ARRAY[1..10] OF INTEGER;
7 FUNCTION FAK(N: INTEGER): INTEGER;
10 ELSE FAK := N*FAK(N-1)
15 PROCEDURE WRITEPERMUTATION;
19 FOR I := 1 TO N DO WRITE( C[I] :3);
21 END (* WRITEPERMUTATION *);
25 PROCEDURE NEXTPERMUTATION;
26 VAR I,PRODUKT: INTEGER;
31 FOR I := N DOWNTO 1 DO
37 PRODUKT := PRODUKT*C[I]
39 UNTIL PRODUKT=NFAKTORIELLE
40 END (* NEXTPERMUTATION *);
45 WRITE("P E R M U T A T I O N E N DER ORDNUNG");
48 NFAKTORIELLE := FAK(N);
49 FOR I := 1 TO N DO C[I] := I;
51 FOR I := 2 TO NFAKTORIELLE DO