A large commit.
[pdp8.git] / sw / src / pascal / PERMUT.V2
diff --git a/sw/src/pascal/PERMUT.V2 b/sw/src/pascal/PERMUT.V2
new file mode 100644 (file)
index 0000000..6b8a53d
--- /dev/null
@@ -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.