home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
LANGUAGS
/
MODULA2
/
RECURREN.MOD
< prev
next >
Wrap
Text File
|
2000-06-30
|
2KB
|
101 lines
(* Compute analytic functions as truncated sums. Determine
the recurrence relations of their terms. *)
MODULE recurrence;
FROM InOut IMPORT WriteString, WriteLn;
FROM RealInOut IMPORT WriteReal, ReadReal;
VAR n: CARDINAL;
i,x,y,s,t: REAL;
BEGIN
WriteString(' exp'); WriteLn;
n := 1;
REPEAT
ReadReal(x); y := 1.0;
i := 0.0; t := 1.0;
REPEAT
i := i + 1.0;
t := t*x/i;
y := y+t;
UNTIL y+t = y;
WriteReal(x,9); WriteReal(y,9); WriteReal(i,9);
DEC(n);
UNTIL n = 0;
WriteString(' sin'); WriteLn;
n := 1;
REPEAT
ReadReal(x); y := x;
i := 1.0; s := x*x;
t := x;
REPEAT
i := i + 2.0;
t := -t*s/((i-1.0)*i);
y := y + t;
UNTIL y + t = y;
WriteReal(x,9); WriteReal(y,9); WriteReal(i/2.0,9);
DEC(n);
UNTIL n = 0;
WriteString(' cos'); WriteLn;
n := 1;
REPEAT
ReadReal(x); y := 1.0;
i := 0.0; s := x*x;
t := 1.0;
REPEAT
i := i + 2.0;
t := -t*s/((i-1.0)*i);
y := y + t;
UNTIL y + t = y;
WriteReal(x,9); WriteReal(y,9); WriteReal(i/2.0,9);
DEC(n);
UNTIL n = 0;
WriteString(' arcsin'); WriteLn;
n := 1;
REPEAT
ReadReal(x); y := x;
i := 1.0; s := x*x;
t := x;
REPEAT
i := i + 2.0;
t := t*s*((i-2.0)*(i-2.0))/((i-1.0)*i);
y := y + t;
UNTIL y + t = y;
WriteReal(x,9); WriteReal(y,9); WriteReal(i/2.0,9);
DEC(n);
UNTIL n = 0;
WriteString(' arctan'); WriteLn;
n := 1;
REPEAT
ReadReal(x); y := x;
i := 1.0; s := x*x;
t := x;
REPEAT
i := i + 2.0;
t := -t*s*(i-2.0)/i;
y := y + t;
UNTIL y + t = y;
WriteReal(x,9); WriteReal(y,9); WriteReal(i/2.0,9);
DEC(n);
UNTIL n = 0;
WriteString(' ln'); WriteLn;
n := 1;
REPEAT
ReadReal(x); x := x - 1.0;
y := x; t := x; i := 1.0;
REPEAT
i := i + 1.0;
t := -t*x*(i-1.0)/i;
y := y + t;
UNTIL y + t = y;
WriteReal(x + 1.0,9); WriteReal(y,9); WriteReal(i,9);
DEC(n);
UNTIL n = 0;
END recurrence.