| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
kykyou
Registrado: 02 Sep 2004 Mensajes: 67 Ubicación: santiago, Chile..
| Publicado: 22/10/2004 3:24 pm | | | Título: serie... |
| hola nuevamente! tengo que hacer el una aproximacion de una serie sen(x), en la que el programa reciba un float el cual determine la aproximacion con la que deseo calcular la serie... La serie es:
sen(x)= 1x/1! - 3x/3! + 5x/5! - 7x/7!....
la aproximacion es el numero que tiene en el factorial y delante de la x... les agradeceria cualquier tipo de ayuda...pues me he craneado mucho y no obtengo resultados  muchas gracias!  |
|
| Volver arriba | |
 |
alp

Registrado: 12 Abr 2004 Mensajes: 413
| Publicado: 22/10/2004 4:37 pm | | | Título: |
| Hola. A ver si te puede servir este programa:
| Código: | #include <stdio.h> #include <conio.h> #include <math.h>
double fact(double valor) { if (valor == 1) return 1.0; return valor * fact(valor - 1); }
int main() { int i, aprox; float temp, x, s; printf("Introduce valor para calcular el seno: "); scanf("%f", &x); printf("Introduce aproximación "); scanf("%i", &aprox); s = 0; for (i = 1; (i*2-1) <= aprox; i++) { temp = i*2-1; if (i % 2) s += pow(x, temp) / fact(temp); else s -= pow(x, temp) / fact(temp); } printf("\nAproximación de sen(%.3f) = %f", x, s); getch(); return 0; } |
El truco para simplificarlo todo y meterlo en un bucle con una variable es el cálculo de los números impares: temp = i*2-1
Un saludo. |
|
| Volver arriba | |
 |
alp

Registrado: 12 Abr 2004 Mensajes: 413
| Publicado: 23/10/2004 2:48 am | | | Título: |
| Hola otra vez. Estaba pensando....el bucle es demasiado enrevesado. Quizás quede mejor así:
| Código: | int suma = 1; s = 0; for (i = 1; i <= aprox; i+=2) { temp = pow(x, i) / fact(i); if (suma) s += temp; else s -= temp; suma = !suma; }
|
Un saludo. |
|
| Volver arriba | |
 |
|
kykyou
Registrado: 02 Sep 2004 Mensajes: 67 Ubicación: santiago, Chile..
| Publicado: 23/10/2004 4:16 am | | | Título: |
| hola! gracia alp, este lo entendi bien , lo que pasa es que no tenia muy claro el ejercicio, no sabis bien que pedian. me has ayudado mucho...ahora lo intentare hacer yo para aprender. muchas gracias! nos vemos... |
|
| Volver arriba | |
 |
kykyou
Registrado: 02 Sep 2004 Mensajes: 67 Ubicación: santiago, Chile..
| Publicado: 28/10/2004 7:10 pm | | | Título: |
| hola! despues de haber hecho la serie del seno, ahora he hecho una del coseno... me gustaria que me vieran si tiene algun error o si esta perfecta  el programa no arroja error pero me gustaria ver opiniones de otras personas... de antemano muchas gracias! aqui les dejo el codigo..
| Código: |
#include<stdio.h> #include<conio.h> #include<math.h>
long int fact(long int valor) { if (valor == 1 || valor==0) return (1); else return (valor * fact(valor - 1)); }
void coseno() { long int aprox, i, temp; float x, s; printf("\n\n\tIngrese el valor del coseno :"); scanf("%f",&x); printf("\n\tIngrese la aproximacion :"); scanf("%ld",&aprox); s=0; for(i=1;(2*i-2)<=aprox;i++) { temp=2*i-2; if(x==0) s=1; else s=+ pow(-1,temp)*(pow(x,2)/fact(temp)); } printf("\n\n\tLa aproximacion de cos(%f) es :%f",x,s); printf("\n\n\tPresione cualquier tecla para continuar :"); getch(); }
void main() { clrscr(); coseno(); }
|
|
|
| Volver arriba | |
 |
|
|