1 PROGRAM CalculaCoseno;
\r
6 (****************************************************************************)
\r
7 (* Funci¢n Potencia: calcula un real elevado a un exponente entero positivo *)
\r
8 (****************************************************************************)
\r
10 FUNCTION potencia(base: real; expo: integer): real;
\r
18 IF expo <> 0 THEN FOR i := 1 TO expo DO final := final * base;
\r
19 writeln('potencia = ', final); (* Para Debug *)
\r
23 (****************************************************************************)
\r
24 (* Funcion Factorial: Dado un numero devuelve su factorial. *)
\r
25 (****************************************************************************)
\r
27 FUNCTION factorial(numero: integer): real;
\r
35 IF numero <> 0 THEN FOR i := 1 TO numero DO final := final * i;
\r
36 writeln('factorial = ', final); (* Para debug *)
\r
40 (****************************************************************************)
\r
41 (* Funcion Coseno: dado un ngulo en radianes calcula el seno aproximandolo *)
\r
42 (****************************************************************************)
\r
44 FUNCTION coseno(angulo: real): real;
\r
51 writeln('angulo = ', angulo); (* Para Debug *)
\r
53 FOR termino := 1 TO 50 DO BEGIN
\r
54 valor := potencia(angulo, termino * 2) / factorial(termino * 2);
\r
55 IF (termino MOD 2) = 0 THEN BEGIN
\r
56 IF (termino MOD 4) <> 0 THEN valor := - valor;
\r
57 cose := cose + valor;
\r
58 writeln('coseno actual = ', cose); (*Para Debug *) END;
\r
63 (****************************************************************************)
\r
64 (* Comienzo del Programa Principal *)
\r
65 (****************************************************************************)
\r
68 write('Ingrese un ngulo en radianes: ');
\r
70 writeln('El coseno calculado de ', x: 4: 3, ' es ', coseno(x), '.');
\r
71 writeln('El coseno ''real'' es ', cos(x), ' y coseno de pi/2 es ', cos((arctan(1) * 4)/2));
\r