PROGRAM d5r1(input,output); (* driver for routine EULSUM *) LABEL 10,99; CONST nval=40; VAR i,j,mval,glnterm : integer; sum,term,x,xpower : real; glwksp : ARRAY [1..nval] OF real; (*$I MODFILE.PAS *) (*$I EULSUM.PAS *) BEGIN (* evaluate ln(1+x) := x-x^2/2+x^3/3-x^4/4 ... FOR -1 nval)) THEN GOTO 99; writeln ('x':9,'actual':14,'polynomial':14); FOR i := -8 to 8 DO BEGIN x := i/10.0; sum := 0.0; xpower := -1; FOR j := 1 to mval DO BEGIN xpower := -x*xpower; term := xpower/j; eulsum(sum,term,j) END; writeln (x:12:6,ln(1.0+x):12:6,sum:12:6) END; GOTO 10; 99: END.