Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | PROGRAM SUMMING(OUTPUT); |
2 | ||
3 | (* COMPUTE 1 - 1/2 + 1/3-...+1/9999 - 1/10000 , 4 WAYS. | |
4 | 1) LEFT TO RIGHT, IN SUCCESSION | |
5 | 2) LEFT TO RIGHT, ALL POS AND NEG TERMS, THEN SUBTRACT | |
6 | 3) RIGHT TO LEFT IN SUCCESSION | |
7 | 4) RIGHT TO LEFT, ALL POS AND NEG TERMS, THEN SUBTRACT*) | |
8 | ||
9 | VAR S1,S2P,S2N,S3,S4P,S4N,LRP,LRN,RLP,RLN : REAL; | |
10 | I : INTEGER; | |
11 | BEGIN S1 := 0; S2P := 0; S2N := 0; S3 := 0; S4P := 0; S4N := 0; | |
12 | FOR I := 1 TO 5000 DO | |
13 | BEGIN | |
14 | LRP := 1/(2*I-1); (* POS TERMS, LEFT TO RIGHT *) | |
15 | LRN := 1/(2*I); (* NEG TERMS, LEFT TO RIGHT *) | |
16 | RLP := 1/(10001-2*I); (* POS TERMS, RIGHT TO LEFT *) | |
17 | RLN := 1/(10002-2*I); (* NEG TERMS, RIGHT TO LEFT *) | |
18 | S1 := S1 + LRP - LRN; | |
19 | S2P := S2P + LRP; S2N := S2N + LRN; | |
20 | S3 := S3 + RLP - RLN; | |
21 | S4P := S4P + RLP; S4N := S4N + RLN | |
22 | END; | |
23 | WRITELN(S1,S2P-S2N); | |
24 | WRITELN(S3,S4P-S4N) | |
25 | END. |