Título: Ayuda con programa en c de funciones trigonometricas
Publicado por: angelica24 en 20 Febrero 2017, 21:00 pm
Hola, mi profesor nos dejó que hicieramos un programa en c que calculara las diferentes funciones trigonometricas (seno, coseno, etc...) pero sin la libreria math.h Ya lo tengo hecho pero cuando lo compilo no me sale el resultado, ¿podrían ayudarme a saber en donde estoy mal? #include <stdio.h> #include <stdlib.h> float potencia(float, float); float factorial(float); float exponencial(float); float sen(float); float senoh(float); float coseh(float); float potencia(float x, float k) { float z = 1; int i; if (k == 0) { return (1); } else { for (i = 0; i < k; i++) { z *= x; } } return (z); } float factorial(float k) { float z = 1; int i; for (i = 1; i <= k; i++) { z *= i; } return (z); } float exponencial(float x) { float suma = 0, ax, error = 0.0001; int k = 0; do { ax = (potencia(x, k) / factorial(k)); suma += ax; k++; if (ax < 0) { ax = -ax; } } while (ax > error); return (suma); } float sen(float x) { float suma = 0, ax, error = 0.001; int k; do { ax = (((potencia(-1, k) * potencia(x, 2 * k)) + 1) / factorial((2 * k) + 1)); suma += ax; k++; if (ax < 0) { ax = -ax; } } while (ax > error); return (suma); } float suma = 0, ax, error = 0.0001; int k; do { ax = ((potencia(-1, k) * potencia(x, 2 * k)) / factorial(2 * k)); suma += ax; k++; if (ax < 0) { ax = -ax; } } while (ax > error); return (suma); } float senoh(float x) { float z = 0; z = (exponencial(x) - (1 / exponencial(x))) / 2; return (z); } float coseh(float x) { float z = 0; z = (exponencial(x) + (1 / exponencial(x))) / 2; return (z); } int main(int argc, char** argv) { float x , seno , coseno , tang , cot , sec , csc , senh , cosh; int opcion; printf("Programa que calcula funciones trigonometricas\n"); printf("Selecciona una opcion del menu\n"); printf("7. Seno Hiperbolico\n"); printf("8. Coseno Hiperbolico\n\n"); switch (opcion) { case 1: seno = sen(x); printf("El seno de %.2f es %.2f", x , seno ); break; case 2: printf("El coseno de %.2f es %.2f", x , coseno ); break; case 3: printf("La tangente de %.2f es %.2f", x , tang ); break; case 4: cot = 1/tang; printf("La cotangente de %.2f es %.2f", x , cot ); break; case 5: printf("La secante de %.2f es %.2f", x ,sec ); break; case 6: csc = 1/sen(x); printf("La cosecante de %.2f es %.2f", x ,csc ); break; case 7: printf("Seno hipoerbolico\n"); senh = senoh(x); printf("El seno hiporbolico de %.2f es %.2f", x , senh ); break; case 8: printf("Coseno hipoerbolico\n"); printf("El coseno hiporbolico de %.2f es %.2f", x , cosh); break; default: printf("Esa opcion no esta en el menu"); } return (EXIT_SUCCESS); }
Título: Re: Ayuda con programa en c de funciones trigonometricas
Publicado por: engel lex en 20 Febrero 2017, 23:16 pm
sin caer en detalle lo primero que veo es linea 53 int k; y luego usas "k" e incrementas sin inicializar ax = (((potencia(-1, k) * potencia(x, 2 * k)) + 1) / factorial((2 * k) + 1)); suma += ax; k++; así que "k" puede valer cualquier cosa
Título: Re:
Publicado por: tonyhxc31 en 20 Febrero 2017, 23:16 pm
Hola... No intente compilar tu código pero algo así debería de funcionar #include<stdio.h> float exp(float x , float y ){ if (y>1){ } else{ return x; } } float fact(float x){ if (x>2){ return x*fact(x-1); } else{ return x; } } void main(){ int opt; float x,y; printf("Seleccione un numero\n"); switch(opt){ case 1: printf("ingrese el exponente\n"); break; case 2: printf("Ingrese un numero\n"); printf("El resultado es: %2f",fact (x )); break; case 3: printf("Ingrese el lado opuesto\n"); printf("Ingrese la hipotenusa\n"); printf("El resultado es: %2f",x /y ); break; } }
Enviado desde mi LG-H542 mediante Tapatalk
|