A large commit.
[pdp8.git] / sw / src / pascal / FEXAKT.PS
diff --git a/sw/src/pascal/FEXAKT.PS b/sw/src/pascal/FEXAKT.PS
new file mode 100644 (file)
index 0000000..8d5b59b
--- /dev/null
@@ -0,0 +1,29 @@
+PROGRAM FAKTORIELLE(OUTPUT);
+CONST NMAX=65;
+      ZMAX=50;
+VAR A: ARRAY[0..NMAX] OF INTEGER;
+    U,J,K,I: INTEGER;
+    C: INTEGER;
+BEGIN
+  FOR I:=0 TO NMAX DO A[I]:=0;
+  A[NMAX]:=1;
+  FOR J:=1 TO ZMAX DO
+    BEGIN
+    U:=0;
+    FOR I:=NMAX DOWNTO 0 DO
+        BEGIN
+        C:=A[I]*J;
+        A[I]:=(C+U) MOD 10;
+        U:=(C+U) DIV 10;
+        END;
+    WRITELN;
+    WRITE(J:3," FAK = ");
+    K:=0;
+    WHILE A[K]=0 DO
+        BEGIN
+        K:=K+1;
+        WRITE(" ")
+        END;
+    FOR K:=K TO NMAX DO WRITE(A[K]:1);
+    END
+END.