X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Fsrc%2Fpascal%2FPERMUT.V2;fp=sw%2Fsrc%2Fpascal%2FPERMUT.V2;h=6b8a53da9c080bca4ad86dcb69370e6cb05b027c;hb=81e70d488b71bf995c459ca3a02c025993460ffa;hp=0000000000000000000000000000000000000000;hpb=07ec0278333ed187ac242dedcff13c56cf1b0b91;p=pdp8.git diff --git a/sw/src/pascal/PERMUT.V2 b/sw/src/pascal/PERMUT.V2 new file mode 100644 index 0000000..6b8a53d --- /dev/null +++ b/sw/src/pascal/PERMUT.V2 @@ -0,0 +1,39 @@ +PROGRAM PERMUTATIONEN(INPUT,OUTPUT); + + VAR I,N: INTEGER; + C: ARRAY[1..10] OF INTEGER; + + + + PROCEDURE WRITEPERMUTATION; + VAR I: INTEGER; + BEGIN + WRITE(" ":10); + FOR I := 1 TO N DO WRITE( C[I] :3); + WRITELN + END (* WRITEPERMUTATION *); + + + + PROCEDURE PERM(K: INTEGER); + VAR I,H: INTEGER; + BEGIN + IF K=1 THEN WRITEPERMUTATION ELSE + BEGIN PERM(K-1); + FOR I:= 1 TO K-1 DO + BEGIN H := C[I]; C[I] := C[K]; C[K] := H; + PERM(K-1); + H := C[I]; C[I] := C[K]; C[K] := H + END + END + END (* PERM *); + + + +BEGIN + WRITE("P E R M U T A T I O N E N DER ORDNUNG"); + READ(N); + WRITELN; + FOR I := 1 TO N DO C[I] := I; + PERM(N) +END.