program partialSums; uses SysUtils, Math; const twoThirds = 2.0 / 3.0; var n, code, k: longint; sum1, sum2, sum3, sum4, sum5, sum6, sum7, sum8, sum9, k2, k3, sink, cosk, a: double; begin if paramCount() = 1 then Val (ParamStr (1),n,Code) else n := 25000; a := -1.0; for k := 1 to n do begin k2 := k*k; k3 := k2*k; sink := sin(k); cosk := cos(k); a := -a; sum1 := sum1 + intpower(twoThirds,k - 1); sum2 := sum2 + 1.0 /sqrt(k); sum3 := sum3 + 1.0/(k*(k+1.0)); sum4 := sum4 + 1.0/(k3*(sink*sink)); sum5 := sum5 + 1.0/(k3*(cosk*cosk)); sum6 := sum6 + 1.0/k; sum7 := sum7 + 1.0/k2; sum8 := sum8 + a/k; sum9 := sum9 + a/(k + k - 1.0 ); end; writeLn(sum1:10:9, #9, '(2/3)^k'); writeLn(sum2:10:9, #9,'k^-0.5'); writeLn(sum3:10:9, #9,'1/k(k+1)'); writeLn(sum4:10:9, #9,'Flint Hills'); writeLn(sum5:10:9, #9,'Cookson Hills'); writeLn(sum6:10:9, #9,'Harmonic'); writeLn(sum7:10:9, #9,'Riemann Zeta'); writeLn(sum8:10:9, #9,'Alternating Harmonic'); writeLn(sum9:10:9, #9,'Gregory'); end. { /usr/bin/fpc -XX -Xs -O3p3r -Fi../../Include/fpascal -Fu../../Include/fpascal -I../../Include/fpascal -oFPASCAL_RUN partialsums.pas PROGRAM OUTPUT ============== 3.000000000 (2/3)^k 3160.817621887 k^-0.5 0.999999600 1/k(k+1) 30.314541510 Flint Hills 42.995233998 Cookson Hills 15.309017155 Harmonic 1.644933667 Riemann Zeta 0.693146981 Alternating Harmonic 0.785398063 Gregory }