summaryrefslogtreecommitdiffstats
path: root/misc/pascal/tests/src/101-cosine.pas
diff options
context:
space:
mode:
Diffstat (limited to 'misc/pascal/tests/src/101-cosine.pas')
-rw-r--r--misc/pascal/tests/src/101-cosine.pas29
1 files changed, 29 insertions, 0 deletions
diff --git a/misc/pascal/tests/src/101-cosine.pas b/misc/pascal/tests/src/101-cosine.pas
new file mode 100644
index 0000000000..b2797fcb90
--- /dev/null
+++ b/misc/pascal/tests/src/101-cosine.pas
@@ -0,0 +1,29 @@
+{ compute the cosine using the expansion:
+ cos(x) = 1 - x**2/(2*1) + x**4/(4*3*2*1) - ... }
+
+program cosine(input, output);
+
+const
+ eps = 1e-14;
+
+var
+ x, sx, s, t : real;
+ i, k, n : integer;
+
+begin
+ write('Number of cosines: ');
+ read(n);
+ for i:=1 to n do
+ begin
+ write(n, '. Enter radians: ');
+ read(x);
+ t := 1; k := 0; s := 1; sx := sqr(x);
+ while abs(t) > eps*abs(s) do
+ begin
+ k := k+2;
+ t := -t*sx/(k*(k-1));
+ s := s+t;
+ writeln(' cos(', x, ')=', s, ' interation=', k div 2)
+ end
+ end
+end.