• Domingo 15 de Diciembre de 2024, 03:48

Autor Tema:  Pequeño Problemita  (Leído 3594 veces)

dadevil_g

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Pequeño Problemita
« en: Sábado 17 de Febrero de 2007, 22:31 »
0
Wenas a todos los programadores y programadoras de este foro, hace mucho que estoy registrao aqui, y hace mucho que no me topaba con un problema como este, sucede que un profe de fisica nos dejo hacer un programa que descomponga las fuerzas y todo ese chou, agarre papel, lapiz, y empece a solucionar el problema, ahora, ya tengo el codigo, hice el programa y corre perfectamente, pero el problema me viene con el resultado, le he preguntado  otro profe y no me supo decir mas que "hay un problema con los radianes y grados" he investigado como hacer la conversion y la pongo en mi programa pero todos los resultados distan mucho de ser los esperados, si alguien pudiera y quiciera ayudarme aqui les dejo el codigo y muchas gracias de antemano por molestarse en leer este post

Código: Text
  1. #include "stdafx.h"
  2. #include "math.h"
  3. #include "stdio.h"
  4. #include "stdlib.h"
  5. #define conver 360/2*3.1415926535
  6.  
  7. void sistema_ingles ();
  8. void sistema_internacional ();
  9. void ayuda();
  10.  
  11. int _tmain(int argc, _TCHAR* argv[])
  12. {
  13.   int menu;
  14.   float a,b,c,d;
  15.   float u,v,w,x;
  16.   printf("===============================================================\n");
  17.   printf(" U N I V E R S I D A D  A U T O N O M A  D E  Z A C A T E C A S\n");
  18.   printf("\n\n\n");
  19.   printf("1.- Sistema Internacional\n");
  20.   printf("2.- Sistema Ingles\n");
  21.   printf("3.- Ayuda\n");
  22.   printf("4.- Salir");
  23.   printf("\n\nSelecciona una opcion a utilizar: ");
  24.   scanf("%d",&menu);
  25. switch(menu){
  26.     case 1:
  27.       printf("1.- Sistema Internacional\n");
  28.       system("cls");
  29.       sistema_internacional();
  30.       break;
  31.     case 2:
  32.       printf("2.- Sistema Ingles\n");
  33.       system("cls");
  34.       sistema_ingles();
  35.       break;
  36.     case 3:
  37.       printf("3.- Ayuda\n");
  38.       system("cls");
  39.       ayuda();
  40.       getchar();
  41.       break;
  42.     case 4:
  43.       printf("4.- Salir");
  44.             break;
  45.     default:
  46.       printf("Opcion no valida");
  47.   }
  48. }
  49.  
  50. void sistema_ingles ()
  51. {
  52.   float u,v,w,x;
  53.   printf("Da la magnitud en libras");
  54.   printf("\nMagnitud: ");
  55.   scanf("%f",&u);
  56.   printf("\nDa la direccion en grados");
  57.   printf("\nDireccion: ");
  58.   scanf("%f",&v);
  59.   w=cos(v);
  60.   x=sin(v);
  61.   getchar();
  62.   printf("\nResultante en 1: %1.5f Lb",w*conver);
  63.   printf("\nResultante en 2: %1.5f Lb",x*conver);
  64.   printf("\n\nLOS RESULTADOS SON EXPRESADOS EN RADIANES");
  65.   getchar();
  66. }
  67.  
  68. void sistema_internacional ()
  69. {
  70.   float a,b,c,d,e,f;
  71.   printf("Da la magnitud en newtons");
  72.   printf("\nMagnitud: ");
  73.   scanf("%f",&a);
  74.   printf("\nDa la direccion en grados");
  75.   printf("\nDireccion: ");
  76.   scanf("%f",&b);
  77.   getchar();
  78.   c = cos (B);
  79.   d = sin (B);
  80.   e= c;
  81.   f= d;
  82.   printf("\nResultante en 1: %1.5f Newtons",e*a);
  83.   printf("\nResultante en 2: %1.5f Newtons",f*a);
  84.   printf("\n\nLOS RESULTADOS SON EXPRESADOS EN RADIANES");
  85.   getchar();
  86. }
  87.  
  88. void ayuda()
  89. {
  90.   printf("Programa diseñado para la asignatura de Fisica 1 (Estatica)\n\n");
  91.   printf("Impartida por el Ing. Jose Antonio Rodriguez Rodriguez\n");
  92.   printf("La opcion 1 ayuda a resolver por medio del sistema ingles\n");
  93.   printf("un sistema de dos fuerzas en libras\n\n");
  94.   printf("La opcion 2 ayuda a resolver por medio del sistema internacional\n");
  95.   printf("un sistema de dos fuerzas en newtons\n\n");
  96.   printf("La opcion 3 despliega esta ayuda\n");
  97.   printf("\nLa opcion 4 sale del programa");
  98.   getchar();
  99. }
  100.  
  101.  

P.D. el programa esta escrito en C, y estoy utilizando el Visual Studio 2005  :comp:
Salu2....  \"UN PROBLEMA A LA VEZ\"; empieza por lo sencillo, luego te verás haciendo lo imposible.

TRod

  • Miembro MUY activo
  • ***
  • Mensajes: 108
  • Nacionalidad: mx
    • Ver Perfil
Re: Pequeño Problemita
« Respuesta #1 en: Sábado 17 de Febrero de 2007, 23:43 »
0
Por lo que recuerdo antes de ejecutar las funciones sin, cos, etc. debes de hacer la conversion de grados a radianes antes de pasar el parametro a estas funciones, ya que las mismas estan esperando un valor especificado en radianes.
Googlea un poco y rapidamente daras con alguna solucion.

¿  grados*(PI/180) = radianes ?

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Pequeño Problemita
« Respuesta #2 en: Domingo 18 de Febrero de 2007, 06:29 »
0
Cita de: "TRod"
Por lo que recuerdo antes de ejecutar las funciones sin, cos, etc. debes de hacer la conversion de grados a radianes antes de pasar el parametro a estas funciones, ya que las mismas estan esperando un valor especificado en radianes.
Googlea un poco y rapidamente daras con alguna solucion.

¿  grados*(PI/180) = radianes ?
Exactamente  :smartass:

Cada vez que uses una trigonométrica necesitas hacer la conversión.
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

dadevil_g

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Re: Pequeño Problemita
« Respuesta #3 en: Domingo 18 de Febrero de 2007, 20:36 »
0
A ver si entendi, la entrada es en grados, y hay que transformarla a radianes, y mandarlo a la funcion sin, o cos, y despues volver a convertir a grados o ya con el simple hecho de mandarlo en gradianes a la funcion debe de dar el resultado esperado? :blink:  :unsure:
Salu2....  \"UN PROBLEMA A LA VEZ\"; empieza por lo sencillo, luego te verás haciendo lo imposible.

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Pequeño Problemita
« Respuesta #4 en: Domingo 18 de Febrero de 2007, 20:51 »
0
Si quisieras obtener por ejemplo el seno de 90º harías algo como esto:
Código: Text
  1.  x=sin(90*PI/180);
  2.  
x debería tomar el valor de "1".-

Saludos
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.