A large commit.
[pdp8.git] / sw / src / pascal / SUMMIN.PS
diff --git a/sw/src/pascal/SUMMIN.PS b/sw/src/pascal/SUMMIN.PS
new file mode 100644 (file)
index 0000000..9723a80
--- /dev/null
@@ -0,0 +1,25 @@
+PROGRAM SUMMING(OUTPUT);
+
+ (* COMPUTE 1 - 1/2 + 1/3-...+1/9999 - 1/10000 , 4 WAYS.
+     1) LEFT TO RIGHT, IN SUCCESSION
+     2) LEFT TO RIGHT, ALL POS AND NEG TERMS, THEN SUBTRACT
+     3) RIGHT TO LEFT IN SUCCESSION
+     4) RIGHT TO LEFT, ALL POS AND NEG TERMS, THEN SUBTRACT*)
+
+VAR S1,S2P,S2N,S3,S4P,S4N,LRP,LRN,RLP,RLN  : REAL;
+I  : INTEGER;
+BEGIN S1 := 0; S2P := 0;  S2N := 0; S3 := 0; S4P := 0; S4N := 0;
+   FOR I := 1 TO 5000 DO
+   BEGIN
+      LRP := 1/(2*I-1); (* POS TERMS, LEFT TO RIGHT *)
+      LRN := 1/(2*I); (* NEG TERMS, LEFT TO RIGHT *)
+      RLP := 1/(10001-2*I);  (* POS TERMS, RIGHT TO LEFT *)
+      RLN := 1/(10002-2*I);  (* NEG TERMS, RIGHT TO LEFT *)
+      S1 := S1 + LRP - LRN;
+      S2P := S2P + LRP; S2N := S2N + LRN;
+      S3 := S3 + RLP - RLN;
+      S4P := S4P + RLP; S4N := S4N + RLN
+   END;
+   WRITELN(S1,S2P-S2N);
+   WRITELN(S3,S4P-S4N)
+END.