U6A3 Formulario
U6A3 Formulario
U6A3 Formulario
PROYECTO:
FORMULARIO DE CONSTANTES FÍSICAS
SERIE DE TAYLOR
Elaborado por:
Castro Morga Paola Alejandra
León García Azul Yared
Mejía Romero Adan
Portillo García Aylynn
Noviembre, 2022
Índice
1. FUNCIONES: FORMULARIO DE CONSTANTES FÍSICAS 3
1.1. Marco teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Algoritmo en lenguaje natural . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Diagrama de flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4. Pseudocódigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5. Prueba de escritorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5.1. Buscar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5.2. Editar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5.3. Agregar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.4. Eliminar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6. Código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.7. Captura de ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.7.1. Buscar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.7.2. Editar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.7.3. Agregar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.7.4. Eliminar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.7.5. Salir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1
2.8. Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2
1. FUNCIONES: FORMULARIO DE CONSTANTES
FÍSICAS
1.1. Marco teórico
1.1.1. Planteamiento del problema
Las constantes físicas son aquellos valores y magnitudes que permanecen invariables sin
importar el tipo de problema o tópico en el que se quieran utilizar, estas constantes tie-
nen unidades fijas y pueden ser obtenidas de forma experimental, a través de medidores,
sensores, o teóricamente, al deducir expresiones y ecuaciones para cierto sistema físico.
Dentro de cada área de conocimiento de la física es común ver constantes, desde las mas
elementales como la velocidad de la luz en el vacío, número de avogadro, constantes de per-
meabilidad y permitividad, masa del electrón, protón, electrón, hasta mas especializadas
como el magnetón nuclear, constantes de gravitación y radiación.
Los usuarios interesados en resolver problemas prácticos que involucren el uso y aplicación
de constantes físicas, deben tener acceso fácil a los valores y sobre todo, al reconocimiento
de las unidades de esta misma, pues es información que podría variar el resultado de la
problemática. Por ello se propone la creación de un programa que utilice como funciona-
miento base los archivos, los cuales permitirán que el usuario cree un macro-formulario de
constantes físicas. Este será capaz de editar las constantes base, eliminar las indeseadas y
añadir otras que no se encuentren en la lista base de constantes.
Figura 1: Tabla muestra con algunas constantes físicas, su símbolo, orden y unidades.
3
1.1.2. Ejemplo
El siguiente ejemplo muestra la utilidad de tener una lista de constantes físicas para la
resolución de un problema de aplicación. [1]
1.- Calcule la velocidad de propagación de la luz en el vidrio.
Solución. Del índice de refracción n = vc , donde c es la velocidad de la luz en el vacío y v
la velocidad de la luz en cierto medio, podemos consultar en una tabla de constantes que
c = 3 · 108 m/s y n = 1,33. Así, la velocidad de la luz en el vidrio es
c 3 · 108
v= = = 1,96 · 108 m/s (1)
n 1,33
4
1.3. Diagrama de flujo
5
(a) Conector 1 (b) Conector 2
6
1.4. Pseudocódigo
1 Inicio
2 d e c l a r a r op=0, exp =0, como e n t e r o ,
3 n=0 como c a r a c t e r ,
4 v a l=0 como f l o t a n t e ,
5 i m p r i m i r menú ,
6 s i op=1 ( b u s c a r ) ,
7 a b r i r archivo ,
8 pedir n ,
9 b u s c a r n en a r c h i v o ,
10 c e r r a r archivo ,
11 si n existe
12 i m p r i m i r n , val , exp ( t a b l a ) ,
13 fin si
14 s i no
15 i m r p i m i r "n no s e e n c u e n t r a en e l a r c h i v o " ,
16 fin si
17 s i op=2( e d i t a r ) ,
18 i m p r i m i r n , val , exp ( t a b l a ) ,
19 pedir n ,
20 a b r i r archivo ,
21 editar n,
22 c e r r a r archivo ,
23 i m p r i m i r n , val , exp ( t a b l a a c t u a l i z a d a ) ,
24 fin si
25 s i op=3( a g r e g a r ) ,
26 a b r i r archivo ,
27 imprimir " I n g r e s e valor " ,
28 g u a r d a r en val ,
29 i m p r i m i r " I n g r e s e e l nombre" ,
30 g u a r d a r en n ,
31 i m p r i m i r " I n g r e s e e l orden " ,
32 g u a r d a r en exp ,
33 c e r r a r archivo ,
34 mprimir n , val , exp ( t a b l a a c t u a l i z a d a ) ,
35 fin si
36 s i op=4( e l i m i n a r ) ,
37 i m p r i m i r n , val , exp ( t a b l a ) ,
38 imprimir " I n g r e s e l a cte a e l i m i n a r "
39 abrir archivo
40 pedir n ,
41 eliminar n ,
42 r e c o r r e r datos ,
7
43 cerrar archivo
44 i m p r i m i r n , val , exp ( t a b l a a c t u a l i z a d a ) ,
45 fin si
46 s i no
47 i m p r i m i r " Opci ón no vá l i d a " ,
48 fin si
49 Fin
1.5.1. Buscar
En este caso pedimos el nombre de la constante y si existe la muestra, sino existe muestra
las constantes almacenadas.
Entrada Salida
Nombre Existe Nombre Valor Exponente
Planck Si
Constante de 6,63 −34
Planck
Constante de 4π −7
Permeabilidad
Faraday No
Constante de 6,63 −34
Planck
Constante de 4π −7
Permeabilidad
1.5.2. Editar
Para esta prueba, primero se muestra la lista de las constantes registradas y después da
la opción de editar:
1. Nombre.
2. Valor.
8
Para este ejemplo utilizaremos la constante de Boltzmann.
Entrada Salida
Buscar Editar
Nombre Valor Nombre Valor Exponente
Boltzman Si No
Constante de 1,38 −23
Boltzmann
1.5.3. Agregar
Entrada Salida
Nombre Valor Exponente Nombre Valor Exponente
Permeabilidad 4π −7
Constante de 4π −7
Permeabilidad
Constante de 1,38 −23
Boltzmann
Constante de 6,63 −34
Planck
1.5.4. Eliminar
Entrada Salida
Nombre Existe Registro Eliminar Nombre Valor Exponente
Permeabilidad Si 1 Si
Constante de 1,38 −23
Boltzmann
Constante de 6,63 −34
Planck
9
1.6. Código
1 #include <s t d i o . h>
2 #include < s t d l i b . h>
3 #include <c t y p e . h>
4 #include <s t r i n g . h>
5
6 int a g r e g a r ( ) ;
7 int b u s c a r ( ) ;
8 int m o s t r a r ( ) ;
9 int e l i m i n a r ( ) ;
10 int e d i t a r ( ) ;
11
12 #define MAX 100
13
14 int main ( ) {
15 int o p c i o n ;
16 p r i n t f ( " \ t \ t \ t ∗FORMULARIO DE CONSTANTES FÍ SICAS∗\n\n" ) ;
17 p r i n t f ( "\ t \ t \ t MENÚ\n\n" ) ;
18 p r i n t f ( " \ t S e l e c c i o n e l a o p c i ón que d e s e e s e j e c u t a r \n\n" ) ;
19 p r i n t f ( " \ t \ t \ t ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗\ n" ) ;
20 p r i n t f ( "\ t \ t \ t ∗ ∗\n" ) ;
21 p r i n t f ( " \ t \ t \ t ∗ Buscar . . . . . . . . . . . . . . 1 ∗\n" ) ;
22 p r i n t f ( "\ t \ t \ t ∗ Editar . . . . . . . . . . . . . . 2 ∗\n" ) ;
23 p r i n t f ( " \ t \ t \ t ∗ Agregar . . . . . . . . . . . . . 3 ∗\n" ) ;
24 p r i n t f ( "\ t \ t \ t ∗ Eliminar . . . . . . . . . . . . 4 ∗\n" ) ;
25 p r i n t f ( "\ t \ t \ t ∗ S a l i r . . . . . . . . . . . . . . . 5 ∗\n" ) ;
26 p r i n t f ( "\ t \ t \ t ∗ ∗\n" ) ;
27 p r i n t f ( " \ t \ t \ t ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗\ n\n" ) ;
28 p r i n t f ( " \ tOpci ón s e l e c c i o n a d a : " ) ;
29 s c a n f ( "%d" ,& o p c i o n ) ;
30 switch ( o p c i o n ) {
31 case 1 :
32 buscar () ;
33 break ;
34 case 2 :
35 editar () ;
36 break ;
37 case 3 :
38 agregar () ;
39 break ;
40 case 4 :
41 eliminar () ;
42 break ;
10
43 case 5 :
44 printf (" Saliendo . . . ") ;
45 return 0 ;
46 default :
47 p r i n t f ( " Esta no e s una o p c i ón d e l menú , por f a v o r i n t a n t a nuevamente . \
n\n" ) ;
48 return main ( ) ;
49 break ;
50 }
51 }
52
53 int a g r e g a r ( ) {
54 FILE ∗ f p ;
55 char a r c h i v o [ ] = " f o r m u l a r i o . t x t " ;
56 int tpos , pos ;
57 float valor ;
58 char nombre [MAX] , exp [MAX] , e b u f f e r [MAX] ;
59
60 // Abre e l a r c h i v o y comprueba que s e pueda a b r i r
61 i f ( ( f p=f o p e n ( a r c h i v o , " a+" ) )==NULL) {
62 p r i n t f ( "ERROR: No s e puede a b r i r e l a r c h i v o \n" ) ;
63 return 1 ;
64 }
65
66 // Se va a l f i n a l d e l a r c h i v o
67 f s e e k ( fp , 0 L ,SEEK_END) ;
68 // S i e l f i n a l d e l a r c h i v o e s 0 , e s t a v a c i o , a s i g n a 1 a l a p o s i c i o n
69 i f ( f t e l l ( f p )==0){
70 pos =1;
71 }
72 else {
73 // s i no , r e g r e s a a l p r i n c i p i o y b u s c a l a p o s i c i o n
74 f s e e k ( fp , 0 L ,SEEK_SET) ;
75 while ( ! f e o f ( f p ) ) {
76 f s c a n f ( fp , "%d %s %f %s \n" ,& tpos , nombre ,& v a l o r , e b u f f e r ) ;
77 // a s i g n a l a p o s i c i o n
78 pos=t p o s +1;
79 }
80 }
81
82 // apunta dor a l f i n a l d e l a r c h i v o
83 f s e e k ( fp , 0 L ,SEEK_END) ;
84
85 // i n t r o d u c i m o s l o s d a t o s
11
86 p r i n t f ( "Nombre : " ) ;
87 s c a n f ( " %s " ,&nombre ) ;
88
89 p r i n t f ( " Valor : " ) ;
90 s c a n f ( "%f " ,& v a l o r ) ;
91
92 p r i n t f ( " Exponente : " ) ;
93 s c a n f ( "%s " ,& exp ) ;
94 const char∗ cexp=(char ∗ ) exp ;
95
96 // C o n v i e r t e l o s e x p o n e n t e s
97 i f ( strcmp ( cexp , " 1 " )==0){ s t r c p y ( exp , " " ) ; }
98 i f ( strcmp ( cexp , " 2 " )==0){ s t r c p y ( exp , " " ) ; }
99 i f ( strcmp ( cexp , " 3 " )==0){ s t r c p y ( exp , " " ) ; }
100 i f ( strcmp ( cexp , " 4 " )==0){ s t r c p y ( exp , " ") ;}
101 i f ( strcmp ( cexp , " 5 " )==0){ s t r c p y ( exp , " ") ;}
102 i f ( strcmp ( cexp , " 6 " )==0){ s t r c p y ( exp , " ") ;}
103 i f ( strcmp ( cexp , " 7 " )==0){ s t r c p y ( exp , " ") ;}
104 i f ( strcmp ( cexp , " 8 " )==0){ s t r c p y ( exp , " ") ;}
105 i f ( strcmp ( cexp , " 9 " )==0){ s t r c p y ( exp , " ") ;}
106 i f ( strcmp ( cexp , " 10 " )==0){ s t r c p y ( exp , " ") ;}
107 i f ( strcmp ( cexp , " 11 " )==0){ s t r c p y ( exp , " ") ;}
108 i f ( strcmp ( cexp , " 12 " )==0){ s t r c p y ( exp , " ") ;}
109 i f ( strcmp ( cexp , " 13 " )==0){ s t r c p y ( exp , " ") ;}
110 i f ( strcmp ( cexp , " 14 " )==0){ s t r c p y ( exp , " ") ;}
111 i f ( strcmp ( cexp , " 15 " )==0){ s t r c p y ( exp , " ") ;}
112 i f ( strcmp ( cexp , " 16 " )==0){ s t r c p y ( exp , " ") ;}
113 i f ( strcmp ( cexp , " 17 " )==0){ s t r c p y ( exp , " ") ;}
114 i f ( strcmp ( cexp , " 18 " )==0){ s t r c p y ( exp , " ") ;}
115 i f ( strcmp ( cexp , " 19 " )==0){ s t r c p y ( exp , " ") ;}
116 i f ( strcmp ( cexp , " 20 " )==0){ s t r c p y ( exp , " ") ;}
117 i f ( strcmp ( cexp , " 21 " )==0){ s t r c p y ( exp , " ") ;}
118 i f ( strcmp ( cexp , " 22 " )==0){ s t r c p y ( exp , " ") ;}
119 i f ( strcmp ( cexp , " 23 " )==0){ s t r c p y ( exp , " ") ;}
120 i f ( strcmp ( cexp , " 24 " )==0){ s t r c p y ( exp , " ") ;}
121 i f ( strcmp ( cexp , " 25 " )==0){ s t r c p y ( exp , " ") ;}
122 i f ( strcmp ( cexp , " 26 " )==0){ s t r c p y ( exp , " ") ;}
123 i f ( strcmp ( cexp , " 27 " )==0){ s t r c p y ( exp , " ") ;}
124 i f ( strcmp ( cexp , " 28 " )==0){ s t r c p y ( exp , " ") ;}
125 i f ( strcmp ( cexp , " 29 " )==0){ s t r c p y ( exp , " ") ;}
126 i f ( strcmp ( cexp , " 30 " )==0){ s t r c p y ( exp , " ") ;}
127 i f ( strcmp ( cexp , " 31 " )==0){ s t r c p y ( exp , " ") ;}
128 i f ( strcmp ( cexp , " 32 " )==0){ s t r c p y ( exp , " ") ;}
129 i f ( strcmp ( cexp , " 33 " )==0){ s t r c p y ( exp , " ") ;}
12
130 i f ( strcmp ( cexp , " 34 " )==0){ s t r c p y ( exp , " ") ;}
131 i f ( strcmp ( cexp , " 35 " )==0){ s t r c p y ( exp , " ") ;}
132 i f ( strcmp ( cexp , " 36 " )==0){ s t r c p y ( exp , " ") ;}
133 i f ( strcmp ( cexp , " 37 " )==0){ s t r c p y ( exp , " ") ;}
134 i f ( strcmp ( cexp , " 38 " )==0){ s t r c p y ( exp , " ") ;}
135 i f ( strcmp ( cexp , " 39 " )==0){ s t r c p y ( exp , " ") ;}
136 i f ( strcmp ( cexp , " 40 " )==0){ s t r c p y ( exp , " ") ;}
137 i f ( strcmp ( cexp , "−1" )==0){ s t r c p y ( exp , " ") ;}
138 i f ( strcmp ( cexp , "−2" )==0){ s t r c p y ( exp , " ") ;}
139 i f ( strcmp ( cexp , "−3" )==0){ s t r c p y ( exp , " ") ;}
140 i f ( strcmp ( cexp , "−4" )==0){ s t r c p y ( exp , " ") ;}
141 i f ( strcmp ( cexp , "−5" )==0){ s t r c p y ( exp , " ") ;}
142 i f ( strcmp ( cexp , "−6" )==0){ s t r c p y ( exp , " ") ;}
143 i f ( strcmp ( cexp , "−7" )==0){ s t r c p y ( exp , " ") ;}
144 i f ( strcmp ( cexp , "−8" )==0){ s t r c p y ( exp , " ") ;}
145 i f ( strcmp ( cexp , "−9" )==0){ s t r c p y ( exp , " ") ;}
146 i f ( strcmp ( cexp , "−10" )==0){ s t r c p y ( exp , " ") ;}
147 i f ( strcmp ( cexp , "−11" )==0){ s t r c p y ( exp , " ") ;}
148 i f ( strcmp ( cexp , "−12" )==0){ s t r c p y ( exp , " ") ;}
149 i f ( strcmp ( cexp , "−13" )==0){ s t r c p y ( exp , " ") ;}
150 i f ( strcmp ( cexp , "−14" )==0){ s t r c p y ( exp , " ") ;}
151 i f ( strcmp ( cexp , "−15" )==0){ s t r c p y ( exp , " ") ;}
152 i f ( strcmp ( cexp , "−16" )==0){ s t r c p y ( exp , " ") ;}
153 i f ( strcmp ( cexp , "−17" )==0){ s t r c p y ( exp , " ") ;}
154 i f ( strcmp ( cexp , "−18" )==0){ s t r c p y ( exp , " ") ;}
155 i f ( strcmp ( cexp , "−19" )==0){ s t r c p y ( exp , " ") ;}
156 i f ( strcmp ( cexp , "−20" )==0){ s t r c p y ( exp , " ") ;}
157
158 const char∗ e=" x10 " ;
159
160 // j u n t a l a s cadenas x10 y e l e x p o n e n t e
161 s t r c a t ( s t r c p y ( e b u f f e r , e ) , cexp ) ;
162
163 // imprime en e l a r c h i v o
164 f p r i n t f ( fp , "%d %s %f %s \n" , pos , nombre , v a l o r , e b u f f e r ) ;
165
166 f c l o s e ( fp ) ;
167 mostrar ( ) ;
168 }
169
170 int b u s c a r ( ) {
171 FILE ∗ f p ;
172 char a r c h i v o [ ] = " f o r m u l a r i o . t x t " ;
173 int tpos , pos , o p c i o n ;
13
174 float valor ;
175 char tnombre [MAX] , nombre [MAX] , exp [MAX] , e b u f f e r [MAX] ;
176
177 // Abre e l a r c h i v o y comprueba que s e pueda a b r i r
178 i f ( ( f p=f o p e n ( a r c h i v o , " a+" ) )==NULL) {
179 p r i n t f ( "ERROR: No s e puede a b r i r e l a r c h i v o \n" ) ;
180 return 1 ;
181 }
182
183 p r i n t f ( " \ nBuscador \n" ) ;
184 p r i n t f ( " 1 . Buscar por nombre\n" ) ;
185 p r i n t f ( " 2 . Buscar por p o s i c i o n \n" ) ;
186 printf (" Opcion ") ;
187 s c a n f ( "%d" ,& o p c i o n ) ;
188
189 i f ( o p c i o n ==1){
190 p r i n t f ( " Constante de : " ) ;
191 s c a n f ( "%s " ,&nombre ) ;
192 p r i n t f ( " \n\tRESULTADOS\n\n" ) ;
193 // Apuntador a l p r i n c i p i o d e l a r c h i v o
194 f s e e k ( fp , 0 L ,SEEK_SET) ;
195 // l e e l o s d a t o s h a s t a e l f i n a l d e l a r c h i v o
196 while ( ! f e o f ( f p ) ) {
197 f s c a n f ( fp , "%d %s %f %s \n" ,& tpos , tnombre ,& v a l o r , e b u f f e r ) ;
198 // s o l o imprime l o s d a t o s con e l mismo nombre
199 i f ( strcmp ( nombre , tnombre )==0) {
200 p r i n t f ( "%d Constante de %s %f %s \n" , tpos , tnombre , v a l o r , e b u f f e r ) ;
201 }
202 }
203 }
204 i f ( o p c i o n ==2){
205 printf (" Posicion : ") ;
206 s c a n f ( "%d" ,& pos ) ;
207 p r i n t f ( " \n\tRESULTADOS\n\n" ) ;
208 // apunta dor a l p r i n c i p i o
209 f s e e k ( fp , 0 L ,SEEK_SET) ;
210
211 while ( ! f e o f ( f p ) ) {
212 f s c a n f ( fp , "%d %s %f %s \n" ,& tpos , tnombre ,& v a l o r , e b u f f e r ) ;
213 // s o l o muestra l o s d a t o s con l a misma p o s i c i o n
214 i f ( t p o s==pos ) {
215 p r i n t f ( "%d Constante de %s %f %s \n" , tpos , tnombre , v a l o r , e b u f f e r ) ;
216 }
217 }
14
218 }
219 f c l o s e ( fp ) ;
220 mostrar ( ) ;
221 }
222
223
224
225 int m o s t r a r ( ) {
226 FILE ∗ f p ;
227 char a r c h i v o [ ] = " f o r m u l a r i o . t x t " ;
228 int tpos , pos , o p c i o n ;
229 float valor ;
230 char tnombre [MAX] , nombre [MAX] , exp [MAX] , e b u f f e r [MAX] ;
231
232 // Abre e l a r c h i v o y comprueba que s e pueda a b r i r
233 i f ( ( f p=f o p e n ( a r c h i v o , " a+" ) )==NULL) {
234 p r i n t f ( "ERROR: No s e puede a b r i r e l a r c h i v o \n" ) ;
235 return 1 ;
236 }
237
238 p r i n t f ( " \ t \nRESULTADOS\n\n" ) ;
239 f s e e k ( fp , 0 L ,SEEK_SET) ;
240 // b u s c a e imprime t o d o
241 while ( ! f e o f ( f p ) ) {
242 f s c a n f ( fp , "%d %s %f %s \n" ,& tpos , tnombre ,& v a l o r , e b u f f e r ) ;
243 p r i n t f ( "%d Constante de %s %.2 f %s \n" , tpos , tnombre , v a l o r , e b u f f e r ) ;
244 }
245 f c l o s e ( fp ) ;
246 }
247
248 int e l i m i n a r ( ) {
249 FILE ∗ fp , ∗ temp ;
250 char a r c h i v o [ ] = " f o r m u l a r i o . t x t " ;
251 char a r c h i v o t [ ] = "temp . t x t " ;
252 int tpos , pos , opcion , a =0;
253 float valor ;
254 char tnombre [MAX] , nombre [MAX] , exp [MAX] , e b u f f e r [MAX] ;
255
256 // Abre e l a r c h i v o y comprueba que s e pueda a b r i r
257 i f ( ( f p=f o p e n ( a r c h i v o , " r+" ) )==NULL) {
258 p r i n t f ( "ERROR: No s e puede a b r i r e l a r c h i v o \n" ) ;
259 return 1 ;
260 }
261
15
262 // a b r e un a r c h i v o t e m p o r a l donde vamos a p a s a r l o s d a t o s
263 i f ( ( temp=f o p e n ( a r c h i v o t , "w+" ) )==NULL) {
264 p r i n t f ( "ERROR: No s e puede a b r i r e l a r c h i v o \n" ) ;
265 return 1 ;
266 }
267
268 p r i n t f ( "CONSTANTES\n\n" ) ;
269 // mueve e l apu ntador f p a l p r i n c i p i o
270 f s e e k ( fp , 0 L ,SEEK_SET) ;
271
272 // Escanea l a s c o n s t a n t e s h a s t a que e n c u e n t r e e l f i n a l d e l a r c h i v o
273 while ( ! f e o f ( f p ) ) {
274 f s c a n f ( fp , "%d %s %f %s \n" ,& tpos , tnombre ,& v a l o r , e b u f f e r ) ;
275 p r i n t f ( "%d Constante de %s %.2 f %s \n" , tpos , tnombre , v a l o r , e b u f f e r ) ;
276 }
277
278 // E l e j i m o s l a p s o c i o n a e l i m i n a r
279 p r i n t f ( " E l i j a l a c o n s t a n t e a e l i m i n a r \n" ) ;
280 p r i n t f ( "Numero : " ) ;
281 s c a n f ( "%d" ,& pos ) ;
282
283 // apunta dor a l i n i c i o d e l a r c h i v o
284 f s e e k ( fp , 0 L ,SEEK_SET) ;
285
286 // Lee l o s d a t o s h a s t a que e n c u e n t r e e l f i n a l
287 while ( ! f e o f ( f p ) ) {
288 f s c a n f ( fp , "%d %s %f %s \n" ,& tpos , tnombre ,& v a l o r , e b u f f e r ) ;
289 //Cuando e n c u e n t r a l a p o s i c i o n , aumenta "a" que e s l a que r e s t a l a
p o s i c i o n para c u b r i r l a e l i m i n a d a
290 i f ( pos==t p o s ) { a =1;}
291 i f ( pos != t p o s ) {
292 // imprime en e l a r c h i v o t e m p o r a l
293 f p r i n t f ( temp , "%d %s %f %s \n" , tpos−a , tnombre , v a l o r , e b u f f e r ) ;
294 }
295 }
296 // c i e r r a e l a r c h i v o de l e c t u r a
297 f c l o s e ( fp ) ;
298
299 // a b r e uno de e s c r i t u r a
300 i f ( ( f p=f o p e n ( a r c h i v o , "w+" ) )==NULL) {
301 p r i n t f ( "ERROR: No s e puede a b r i r e l a r c h i v o \n" ) ;
302 return 1 ;
303 }
304
16
305 f s e e k ( temp , 0 L ,SEEK_SET) ;
306 // e s c r i b i m o s l o d e l a r c h i v o t e m p o r a l en f o r m u l a r i o
307 while ( ! f e o f ( temp ) ) {
308 f s c a n f ( temp , "%d %s %f %s \n" ,& tpos , tnombre ,& v a l o r , e b u f f e r ) ;
309 f p r i n t f ( fp , "%d %s %f %s \n" , tpos , tnombre , v a l o r , e b u f f e r ) ;
310 }
311
312 // cerramos ambos
313 f c l o s e ( temp ) ;
314 f c l o s e ( fp ) ;
315 m o s t r a r ( ) ;
316 }
317
318 int e d i t a r ( ) {
319 FILE ∗ fp , ∗ temp ;
320 char a r c h i v o [ ] = " f o r m u l a r i o . t x t " ;
321 char a r c h i v o t [ ] = "temp . t x t " ;
322 int tpos , pos , opcion , a =0;
323 float valor , tvalor ;
324 char tnombre [MAX] , nombre [MAX] , exp [MAX] , t e b u f f e r [MAX] , e b u f f e r [MAX] ;
325
326 // Abre e l a r c h i v o y comprueba que s e pueda a b r i r
327 i f ( ( f p=f o p e n ( a r c h i v o , " r+" ) )==NULL) {
328 p r i n t f ( "ERROR: No s e puede a b r i r e l a r c h i v o \n" ) ;
329 return 1 ;
330 }
331
332 // a b r e un a r c h i v o t e m p o r a l donde vamos a p a s a r l o s d a t o s
333 i f ( ( temp=f o p e n ( a r c h i v o t , "w+" ) )==NULL) {
334 p r i n t f ( "ERROR: No s e puede a b r i r e l a r c h i v o \n" ) ;
335 return 1 ;
336 }
337
338 p r i n t f ( "CONSTANTES\n\n" ) ;
339 // mueve e l apu ntador a l p r i n c i p i o
340 f s e e k ( fp , 0 L ,SEEK_SET) ;
341
342 // Escanea l a s c o n s t a n t e s h a s t a que e n c u e n t r e e l f i n a l d e l a r c h i v o
343 while ( ! f e o f ( f p ) ) {
344 f s c a n f ( fp , "%d %s %f %s \n" ,& tpos , tnombre ,& t v a l o r , t e b u f f e r ) ;
345 p r i n t f ( "%d Constante de %s %.2 f %s \n" , tpos , tnombre , t v a l o r , t e b u f f e r ) ;
346 }
347
348 // E l e j i m o s l a p s o c i o n a e d i t a r
17
349 p r i n t f ( " E l i j a l a c o n s t a n t e a e d i t a r \n" ) ;
350 p r i n t f ( "Numero : " ) ;
351 s c a n f ( "%d" ,& pos ) ;
352
353 p r i n t f ( " ¿Que q u i e r e s e d i t a r ?\n" ) ;
354 p r i n t f ( " 1 . Nombre\n" ) ;
355 p r i n t f ( " 2 . Valor \n" ) ;
356 printf (" Opcion " ) ;
357 s c a n f ( "%d" ,& o p c i o n ) ;
358
359 i f ( o p c i o n ==1) {
360 p r i n t f ( "Nuevo nombre : " ) ;
361 s c a n f ( "%s " ,&nombre ) ;
362 }
363
364 i f ( o p c i o n ==2) {
365 p r i n t f ( " Valor : " ) ;
366 s c a n f ( "%f " ,& v a l o r ) ;
367
368 p r i n t f ( " Exponente : " ) ;
369 s c a n f ( "%s " ,& exp ) ;
370 const char∗ cexp=(char ∗ ) exp ;
371
372 // C o n v i e r t e l o s e x p o n e n t e s
373 i f ( strcmp ( cexp , " 1 " )==0){ s t r c p y ( exp , "^1" ) ; }
374 i f ( strcmp ( cexp , " 2 " )==0){ s t r c p y ( exp , "^2" ) ; }
375 i f ( strcmp ( cexp , " 3 " )==0){ s t r c p y ( exp , "^3" ) ; }
376 i f ( strcmp ( cexp , " 4 " )==0){ s t r c p y ( exp , " ") ;}
377 i f ( strcmp ( cexp , " 5 " )==0){ s t r c p y ( exp , " ") ;}
378 i f ( strcmp ( cexp , " 6 " )==0){ s t r c p y ( exp , " ") ;}
379 i f ( strcmp ( cexp , " 7 " )==0){ s t r c p y ( exp , " ") ;}
380 i f ( strcmp ( cexp , " 8 " )==0){ s t r c p y ( exp , " ") ;}
381 i f ( strcmp ( cexp , " 9 " )==0){ s t r c p y ( exp , " ") ;}
382 i f ( strcmp ( cexp , " 10 " )==0){ s t r c p y ( exp , " ") ;}
383 i f ( strcmp ( cexp , " 11 " )==0){ s t r c p y ( exp , " ") ;}
384 i f ( strcmp ( cexp , " 12 " )==0){ s t r c p y ( exp , " ") ;}
385 i f ( strcmp ( cexp , " 13 " )==0){ s t r c p y ( exp , " ") ;}
386 i f ( strcmp ( cexp , " 14 " )==0){ s t r c p y ( exp , " ") ;}
387 i f ( strcmp ( cexp , " 15 " )==0){ s t r c p y ( exp , " ") ;}
388 i f ( strcmp ( cexp , " 16 " )==0){ s t r c p y ( exp , " ") ;}
389 i f ( strcmp ( cexp , " 17 " )==0){ s t r c p y ( exp , " ") ;}
390 i f ( strcmp ( cexp , " 18 " )==0){ s t r c p y ( exp , " ") ;}
391 i f ( strcmp ( cexp , " 19 " )==0){ s t r c p y ( exp , " ") ;}
392 i f ( strcmp ( cexp , " 20 " )==0){ s t r c p y ( exp , " ") ;}
18
393 i f ( strcmp ( cexp , " 21 " )==0){ s t r c p y ( exp , " ") ;}
394 i f ( strcmp ( cexp , " 22 " )==0){ s t r c p y ( exp , " ") ;}
395 i f ( strcmp ( cexp , " 23 " )==0){ s t r c p y ( exp , " ") ;}
396 i f ( strcmp ( cexp , " 24 " )==0){ s t r c p y ( exp , " ") ;}
397 i f ( strcmp ( cexp , " 25 " )==0){ s t r c p y ( exp , " ") ;}
398 i f ( strcmp ( cexp , " 26 " )==0){ s t r c p y ( exp , " ") ;}
399 i f ( strcmp ( cexp , " 27 " )==0){ s t r c p y ( exp , " ") ;}
400 i f ( strcmp ( cexp , " 28 " )==0){ s t r c p y ( exp , " ") ;}
401 i f ( strcmp ( cexp , " 29 " )==0){ s t r c p y ( exp , " ") ;}
402 i f ( strcmp ( cexp , " 30 " )==0){ s t r c p y ( exp , " ") ;}
403 i f ( strcmp ( cexp , " 31 " )==0){ s t r c p y ( exp , " ") ;}
404 i f ( strcmp ( cexp , " 32 " )==0){ s t r c p y ( exp , " ") ;}
405 i f ( strcmp ( cexp , " 33 " )==0){ s t r c p y ( exp , " ") ;}
406 i f ( strcmp ( cexp , " 34 " )==0){ s t r c p y ( exp , " ") ;}
407 i f ( strcmp ( cexp , " 35 " )==0){ s t r c p y ( exp , " ") ;}
408 i f ( strcmp ( cexp , " 36 " )==0){ s t r c p y ( exp , " ") ;}
409 i f ( strcmp ( cexp , " 37 " )==0){ s t r c p y ( exp , " ") ;}
410 i f ( strcmp ( cexp , " 38 " )==0){ s t r c p y ( exp , " ") ;}
411 i f ( strcmp ( cexp , " 39 " )==0){ s t r c p y ( exp , " ") ;}
412 i f ( strcmp ( cexp , " 40 " )==0){ s t r c p y ( exp , " ") ;}
413 i f ( strcmp ( cexp , "−1" )==0){ s t r c p y ( exp , " ") ;}
414 i f ( strcmp ( cexp , "−2" )==0){ s t r c p y ( exp , " ") ;}
415 i f ( strcmp ( cexp , "−3" )==0){ s t r c p y ( exp , " ") ;}
416 i f ( strcmp ( cexp , "−4" )==0){ s t r c p y ( exp , " ") ;}
417 i f ( strcmp ( cexp , "−5" )==0){ s t r c p y ( exp , " ") ;}
418 i f ( strcmp ( cexp , "−6" )==0){ s t r c p y ( exp , " ") ;}
419 i f ( strcmp ( cexp , "−7" )==0){ s t r c p y ( exp , " ") ;}
420 i f ( strcmp ( cexp , "−8" )==0){ s t r c p y ( exp , " ") ;}
421 i f ( strcmp ( cexp , "−9" )==0){ s t r c p y ( exp , " ") ;}
422 i f ( strcmp ( cexp , "−10" )==0){ s t r c p y ( exp , " ") ;}
423 i f ( strcmp ( cexp , "−11" )==0){ s t r c p y ( exp , " ") ;}
424 i f ( strcmp ( cexp , "−12" )==0){ s t r c p y ( exp , " ") ;}
425 i f ( strcmp ( cexp , "−13" )==0){ s t r c p y ( exp , " ") ;}
426 i f ( strcmp ( cexp , "−14" )==0){ s t r c p y ( exp , " ") ;}
427 i f ( strcmp ( cexp , "−15" )==0){ s t r c p y ( exp , " ") ;}
428 i f ( strcmp ( cexp , "−16" )==0){ s t r c p y ( exp , " ") ;}
429 i f ( strcmp ( cexp , "−17" )==0){ s t r c p y ( exp , " ") ;}
430 i f ( strcmp ( cexp , "−18" )==0){ s t r c p y ( exp , " ") ;}
431 i f ( strcmp ( cexp , "−19" )==0){ s t r c p y ( exp , " ") ;}
432 i f ( strcmp ( cexp , "−20" )==0){ s t r c p y ( exp , " ") ;}
433
434 const char∗ e=" x10 " ;
435
436 // j u n t a l a s cadenas x10 y e l e x p o n e n t e
19
437 s t r c a t ( s t r c p y ( e b u f f e r , e ) , cexp ) ;
438 }
439
440 // apunta dor a l i n i c i o
441 f s e e k ( fp , 0 L ,SEEK_SET) ;
442
443 // Lee l o s d a t o s h a s t a que e n c u e n t r e e l f i n a l
444 while ( ! f e o f ( f p ) ) {
445 f s c a n f ( fp , "%d %s %f %s \n" ,& tpos , tnombre ,& t v a l o r , t e b u f f e r ) ;
446 i f ( pos != t p o s ) {
447 // imprime en e l a r c h i v o t e m p o r a l s i n cambiar nada
448 f p r i n t f ( temp , "%d %s %f %s \n" , tpos−a , tnombre , t v a l o r , t e b u f f e r ) ;
449 }
450 else {
451 i f ( o p c i o n ==1){
452 // s i e n c u e n t r a l a p o s o c i o n y e l e j i s t e e l nombre copiamos t o d o i g u a l
menos e l nombre
453 f p r i n t f ( temp , "%d %s %f %s \n" , tpos−a , nombre , t v a l o r , t e b u f f e r ) ;
454 }
455 i f ( o p c i o n ==2){
456 // c o p i a t o d o i g u a l menos e l v a l o r
457 f p r i n t f ( temp , "%d %s %f %s \n" , tpos−a , tnombre , v a l o r , e b u f f e r ) ;
458 }
459 }
460 }
461 // c i e r r a e l a r c h i v o de l e c t u r a
462 f c l o s e ( fp ) ;
463
464 // a b r e uno de e s c r i t u r a
465 i f ( ( f p=f o p e n ( a r c h i v o , "w+" ) )==NULL) {
466 p r i n t f ( "ERROR: No s e puede a b r i r e l a r c h i v o \n" ) ;
467 return 1 ;
468 }
469
470 f s e e k ( temp , 0 L ,SEEK_SET) ;
471 // e s c r i b i m o s l o d e l a r c h i v o t e m p o r a l en f o r m u l a r i o
472 while ( ! f e o f ( temp ) ) {
473 f s c a n f ( temp , "%d %s %f %s \n" ,& tpos , tnombre ,& v a l o r , e b u f f e r ) ;
474 f p r i n t f ( fp , "%d %s %f %s \n" , tpos , tnombre , v a l o r , e b u f f e r ) ;
475 }
476
477 // cerramos ambos
478 f c l o s e ( temp ) ;
479 f c l o s e ( fp ) ;
20
480 mostrar ( ) ;
481 }
21
1.7.2. Editar
22
1.7.3. Agregar
23
1.7.4. Eliminar
24
1.7.5. Salir
25
2. RECURSIVIDAD: SERIE DE TAYLOR
2.1. Marco teórico
2.1.1. Planteamiento del problema
La serie de Taylor es una herramienta matemática que tiende a manifestarse y ser útil
cuando nuestro problema involucra conocer el valor de una función alrededor de un pun-
to específico. Usar la serie de Taylor resulta práctico cuando se desea resolver problemas
de índole físico, tales como aproximaciones en el oscilador armónico, densidad de cuerpo
negro, cálculo de propiedades ópticas, etcétera; en electrónica analógica al obtener aproxi-
maciones a pequeña señal en ciertos circuitos; en cálculo para eliminar indeterminaciones
en límites, así como en desigualdades, estimación de integrales y sus residuos, determina-
ción de convergencia, e incluso en el ámbito de finanzas y economía, donde el precio es
expresado como una función no lineal.
La serie de Taylor lleva este nombre en honor al matemático ingles Brook Taylor (1685-
1731) y la serie de Maclaurin se llama así para recordar al matemático escocés Colin
Maclaurin (1698-1746) a pesar del hecho de que la serie de Maclaurin es realmente un caso
especial de la serie de Taylor. [2]
Sea f (x) una función cuyas derivadas son continuas y están definidas en el intervalo de
expansión alrededor de un punto cualquiera x0 , entonces la función tiene una expansión
como serie de Taylor:
∞
X f n (x0 )
f (x) = (x − x0 )n (3)
n=o
n!
′
f (x0 ) f ′′ (x0 ) f ′′′ (x0 )
f (x) = f (x0 ) + (x − x0 ) + (x − x0 )2 + (x − x0 )3 + ... (4)
1! 2! 3!
A la serie alrededor de x0 = 0 se le denomina también serie de Maclaurin.
Como estudiantes de física, constantemente la Serie de Taylor de una función trigonomé-
trica resulta de utilidad para el cálculo de aproximaciones cerca del origen o a ángulos
pequeños, de esta forma, y siguiendo las ecuaciones (3) y (4), podemos definir las series
de Mclaurin de las siguientes funciones:
∞
x3 x5 x7 X x2n+1
sen(x) = x − + − ± ... = f (x) = (−1)n (5)
3! 5! 7! n=o
2n + 1!
26
∞
x2 x 4 x6 X x2n
cos(x) = 1 − + − ± ... = f (x) = (−1)n (6)
2! 4! 6! n=o
2n!
2.1.2. Ejemplo
El siguiente ejemplo muestra la utilidad de las series de Taylor de las funciones seno y
coseno en la obtención de series para otras funciones.
1. Calcule los primeros tres términos no cero de la serie de Maclaurin para tan(x), [3].
Solución. Usando las expresiones (5) y (6),
3 5 7
sen(x) x − x3! + x5! − x7! ± ...
tan(x) = = 2 4 6 (7)
cos(x) 1 − x2! + x4! − x6! ± ...
Usamos un procedimiento como el de la división larga:
1 2
tan(x) = x + x3 + x5 + ... (8)
3 15
27
2.2. Algoritmo en lenguaje natural
Entrada: o de tipo entero que permita elegir una opción
Proceso: Si la opción es 1 se calcula la serie de T del seno. Si es 2 se calcula la serie
de T del coseno
Salida: Resultado de la serie elegida.
28
2.4. Pseudocódigo
1 Inicio
2 d e c l a r a r r e s =0 como f l o t a n t e ,
3 op=0, n=0, x=0 como e n t e r o s ,
4 i m p r i m i r menú ,
5 p e d i r op ,
6 s i op=1,
7 i m p r i m i r " s e r i e de t a y l o r de Sen " ,
8 pedir n , x ,
9 i m p r i m i r r e s ( s e r i e de t a y l o r h a s t a e l n−t é rmino
10 e v a l u a d o en x )
11 fin si
12 s i op=2
13 i m p r i m i r " s e r i e de t a y l o r de Cos"
14 pedir n , x ,
15 i m p r i m i r r e s ( s e r i e de t a y l o r h a s t a e l n−t é rmino
16 e v a l u a d o en x )
17 fin si
18 s i no
19 i m r p r i m i r " Opcion i n c o r e c t a " ,
20 fin si
21 Fin
29
2.5. Prueba de escritorio
2.5.1. Serie de Taylor de seno
x3 x5 x7
sin x = x − + − ± ...
3! 5! 7!
Para esta prueba el n-ésimo término y se calcula la serie alrededor de 0.
n=6
Entrada Salida
n Ángulo Resultado
◦
6 0 0,00
22,5◦ 0,38
◦
45 0,70
67,5◦ 0,92
90◦ 1,00
◦
112,5 0,92
x2 x 4 x6
cos x = 1 − + − ± ...
2! 4! 6!
Para esta prueba el n-ésimo término y se calcula la serie alrededor de 0.
n=6
30
Entrada Salida
n Ángulo Resultado
6 0◦ 1,00
◦
22,5 0,92
45◦ 0,70
◦
67,5 0,38
90◦ 0,00
◦
112,5 −0,38
2.6. Código
1 #include <math . h>
2 #include <s t d i o . h>
3 #include < s t d l i b . h>
4 #define PI 3 . 1 4 1 5 9
5
6
7 int s e n o ( void ) ;
8 long f a c t ( long ) ;
9 int c o s e n o ( void ) ;
10
11 int main ( ) {
12 int op = 0 ;
13 p r i n t f ( "\ t \ t \ t ∗SERIES DE TAYLOR∗\n\n" ) ;
14 p r i n t f ( "\ t \ t \ t MENÚ\n\n" ) ;
15 p r i n t f ( " \ t S e l e c c i o n e l a f u n c i ón para v e r su s e r i e de Taylor \n\n" ) ;
16 p r i n t f ( " \ t \ t \ t ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗\ n" ) ;
17 p r i n t f ( "\ t \ t \ t ∗ ∗\n" ) ;
18 p r i n t f ( " \ t \ t \ t ∗ Seno . . . . . . . . . . . . . . 1 ∗\n" ) ;
19 p r i n t f ( " \ t \ t \ t ∗ Coseno . . . . . . . . . . . . 2 ∗\n" ) ;
20 p r i n t f ( "\ t \ t \ t ∗ S a l i r . . . . . . . . . . . . . 3 ∗\n" ) ;
21 p r i n t f ( "\ t \ t \ t ∗ ∗\n" ) ;
22 p r i n t f ( " \ t \ t \ t ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗\ n\n" ) ;
23 p r i n t f ( " \ tOpci ón s e l e c c i o n a d a : " ) ;
24 s c a n f ( "%d" , &op ) ;
25 switch ( op ) {
26 case 1 :
27 seno ( ) ;
28 break ;
29 case 2 :
31
30 coseno ( ) ;
31 break ;
32 case 3 :
33 printf (" Saliendo . . . ") ;
34 return 0 ;
35 default :
36 p r i n t f ( " Esta no e s una o p c i ón d e l menú , i n t e n t a l o nuevamente . \ n\n" ) ;
37 return main ( ) ;
38 break ;
39 }
40 }
41
42 int s e n o ( void ) { // S e r i e impar
43 int t = 0 , i = 0 , j = 0 ;
44 f l o a t s e n =0,x=0;
45 p r i n t f ( " \ t \ t \ t \ t SENO\n\n" ) ;
46 p r i n t f ( " s e n ( x ) = x − x / 3 ! + x / 5 ! − x / 7 ! . . . \ n" ) ;
47 p r i n t f ( " \ t I n g r e s a h a s t a que t é rmino q u i e r e s l a s e r i e : " ) ;
48 s c a n f ( "%d" , &t ) ;
49 p r i n t f ( "x \ t \ t s e n x\n" ) ;
50 f o r ( i = 0 ; i <= 8 ; i ++) {
51 x=( i ∗ PI ) / 8 ;
52 f o r ( j =0; j<=t ; j ++) { // C a l c u l a l a s e r i e
53 s e n=s e n +(pow( −1 , j ) ∗pow ( x , ( 2 ∗ j ) +1) ) / ( f a c t ( 2 ∗ j +1) ) ;
54 } // Imprime l a s e r i e
55 p r i n t f ( "%d∗ /8\ t %l f \n" , i , s e n ) ;
56 s e n =0;
57 }
58 p r i n t f ( " \ n I n g r e s e un a n g u l o : " ) ;
59 s c a n f ( "%f " ,&x ) ;
60 f o r ( j =0; j<= t ; j ++) { // C a l c u l a l a s e r i e
61 s e n=s e n +(pow( −1 , j ) ∗pow ( x , 2 ∗ j +1) ) / ( f a c t ( 2 ∗ j +1) ) ;
62 }
63 p r i n t f ( " Valor de tu a n g u l o con s e r i e s de Taylor : %f " , s e n ) ;
64 }
65
66 long f a c t ( long t ) { // R e c u r s i v i d a d
67 i f ( t <= 1 ) {
68 return 1 ;
69 } else {
70 return ( t ∗ f a c t ( t − 1 ) ) ;
71 }
72 }
73
32
74 int c o s e n o ( void ) { // S e r i e par
75 int t = 0 , i = 0 , j ;
76 f l o a t c o s =0,x ;
77 p r i n t f ( " \ t \ t \ t \ t COSENO\n\n" ) ;
78 p r i n t f ( " c o s ( x )= 1 − x / 2 ! + x / 4 ! − x / 6 ! . . . \ n" ) ;
79 p r i n t f ( " \ t I n g r e s a h a s t a que t é rmino q u i e r e s l a s e r i e : " ) ;
80 s c a n f ( "%d" , &t ) ;
81 p r i n t f ( "x \ t \ t c o s x\n" ) ;
82 f o r ( i = 0 ; i <= 8 ; i ++) {
83 x=( i ∗ PI ) / 8 ;
84 f o r ( j =0; j<= t ; j ++) { // C a l c u l a l a s e r i e
85 c o s=c o s +(pow( −1 , j ) ∗pow ( x , 2 ∗ j ) ) / ( f a c t ( 2 ∗ j ) ) ;
86 } // Imprime l a s e r i e
87 p r i n t f ( "%d∗ /8\ t %l f \n" , i , c o s ) ;
88 c o s =0;
89 }
90 p r i n t f ( " \ n I n g r e s e un a n g u l o : " ) ;
91 s c a n f ( "%f " ,&x ) ;
92 f o r ( j =0; j<= t ; j ++) { // C a l c u l a l a s e r i e
93 c o s=c o s +(pow( −1 , j ) ∗pow ( x , 2 ∗ j ) ) / ( f a c t ( 2 ∗ j ) ) ;
94 }
95 p r i n t f ( " Valor de tu a n g u l o con s e r i e s de Taylor : %f " , c o s ) ;
96 }
33
2.7. Captura de ejecución
2.7.1. Serie de Taylor de seno
34
2.7.2. Serie de Taylor de coseno
35
2.7.3. Salir
36
2.8. Bibliografía
[1] H. Galbarro. “Constantes Físicas”. ingemecánica. https://ingemecanica.com/tutoriales/
constantes_fisicas.html#:~:text=Se%20entiende%20por%20constante%20fÃŋsica,Sistema%
20Internacional%20de%20Unidades%20(S.I.)(accedidoel11denoviembrede2022).
[2] G. Westreicherz.“Serie de Taylor | Economipedia”. Economipedia. https://economipedia.
com/definiciones/serie-de-taylor.html (accedido el 10 de noviembre de 2022).
[3] J. Stewart, Cálculo de una variable : trascendentes tempranas., 7a ed. Mexico: Cengage
Learning, 2012.
[4] K. I. López De La Cruz, “Apuntadores y archivos”, octubre de 2021, Unidad 6. Accedido
el 15 de noviembre de 2022. [En línea]. Disponible: https://drive.google.com/drive/
folders/1aG17y_uDbtYoEVIbXMTdoyNv3BAnapFf
[5] K. I. López De La Cruz, “Funciones”, octubre de 2021, Unidad 6. Accedido el 15 de
noviembre de 2022. [En línea]. Disponible: https://drive.google.com/drive/folders/
1aG17y_uDbtYoEVIbXMTdoyNv3BAnapFf
37