]> git.llucax.com Git - z.facultad/75.40/1er-cuat/material.git/blob - 2.33.pas
Import inicial después del "/var incident". :(
[z.facultad/75.40/1er-cuat/material.git] / 2.33.pas
1 PROGRAM CalculaCoseno;\r
2 \r
3 VAR\r
4    x: real;\r
5 \r
6 (****************************************************************************)\r
7 (* Funci¢n Potencia: calcula un real elevado a un exponente entero positivo *)\r
8 (****************************************************************************)\r
9 \r
10 FUNCTION potencia(base: real; expo: integer): real;\r
11 \r
12 VAR\r
13    final: real;\r
14    i: integer;\r
15 \r
16 BEGIN\r
17      final := 1;\r
18      IF expo <> 0 THEN FOR i := 1 TO expo DO final := final * base;\r
19      writeln('potencia = ', final); (* Para Debug *)\r
20      potencia := final;\r
21 END;\r
22 \r
23 (****************************************************************************)\r
24 (*       Funcion Factorial: Dado un numero devuelve su factorial.           *)\r
25 (****************************************************************************)\r
26 \r
27 FUNCTION factorial(numero: integer): real;\r
28 \r
29 VAR\r
30    i: integer;\r
31    final: real;\r
32 \r
33 BEGIN\r
34      final := 1;\r
35      IF numero <> 0 THEN FOR i := 1 TO numero DO final := final * i;\r
36      writeln('factorial = ', final); (* Para debug *)\r
37      factorial := final;\r
38 END;\r
39 \r
40 (****************************************************************************)\r
41 (* Funcion Coseno: dado un  ngulo en radianes calcula el seno aproximandolo *)\r
42 (****************************************************************************)\r
43 \r
44 FUNCTION coseno(angulo: real): real;\r
45 \r
46 VAR\r
47    cose, valor: real;\r
48    termino: integer;\r
49 \r
50 BEGIN\r
51      writeln('angulo = ', angulo); (* Para Debug *)\r
52      cose := 1;\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
59                                END;\r
60      coseno := cose;\r
61 END;\r
62 \r
63 (****************************************************************************)\r
64 (*                    Comienzo del Programa Principal                       *)\r
65 (****************************************************************************)\r
66 \r
67 BEGIN\r
68      write('Ingrese un  ngulo en radianes: ');\r
69      readln(x);\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
72 END.\r