elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  PROBLEMA CON UNA VARIABLE
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: PROBLEMA CON UNA VARIABLE  (Leído 1,950 veces)
magv1991

Desconectado Desconectado

Mensajes: 2


Ver Perfil
PROBLEMA CON UNA VARIABLE
« en: 21 Febrero 2014, 13:53 pm »

Hey que  onda, pues tengo este programa que no cambia las variables t3 y t4, toma el valor inicial definido antes del primer while, y necesito que tome el ultimo valor despues del while interno para iniciar el ciclo. Alguna ayuda :P

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. FILE *doc; //usaremos un archivo para guardar los datos obtenidos//
  6.  
  7. int main(int argc, char *argv[]) {
  8.  
  9. doc=fopen("posicion del mecanismo 1.txt","w+"); //abrimos y nombramos un archivo de texto//
  10.  
  11. float r1, r2, r3, r4, t1, t2, t3, t4, f1, f2, dt3, dt4, i, pi;
  12. pi=3.14159265359; //el valor de pi lo usaremos para la conversion de grados a radianes y viceversa//
  13. r1=sqrt(pow(47.5,2)+pow(64,2)); //r1 representa al eslabon fijo y no cambia//
  14. r2=14; //r2 representa al eslabon motriz y no cambia//
  15. r3=80; //r3 representa al eslabon acoplador y no cambia//
  16. r4=51.26; //r4 representa al eslabon salida y no cambia//
  17. t1=atan(64/-47.5)+pi; //t1 representa al angulo de r1 desde las abscisas positivas y no cambia//
  18. t2=45; //t2 representa al angulo inicial de r2 desde las abscisas positivas y varia independientemente//
  19. t3=105*pi/180; //at3 representa la primer aproxiamcion al angulo inicial de r3 desde las abscisas positivas y varia en funcion de t2//
  20. t4=30*pi/180; //at4 representa la primer aproximacion al angulo inicial de r4 desde las abscisas positivas y varia en funcion de t2//
  21. i=1; //i es el numero de iteraciones a realizar del metodo de Newton-Raphson//
  22. printf(" t2\t   t3\t\t   t4\n");
  23. fprintf(doc, " t2\t   t3\t\t   t4\n"); //escribimos los datos en el archivo de texto//
  24. while (t2<=405) //se calcularan los valores reales de los angulos t3 y t4 para valores de t2 desde 45 hasta 360 grados//
  25. {
  26. while (i<=3) //se realizaran 3 iteraciones para determinar el valor real de t3 y t4 para un cierto valor de t2//
  27. {
  28. f1=r1*cos(t1)+r4*cos(t4)-r2*cos(t2*pi/180)-r3*cos(t3); //f1 y f2 representan al vector solucion//
  29. f2=r1*sin(t1)+r4*sin(t4)-r2*sin(t2*pi/180)-r3*sin(t3); //del sistema matricial//
  30. dt3=(f1*cos(t4)+f2*sin(t4))/(r3*(cos(t3)*sin(t4)-sin(t3)*cos(t4))); //dt3 y dt4 representan al vector//
  31. dt4=(f1*cos(t3)+f2*sin(t3))/(r4*(cos(t3)*sin(t4)-sin(t3)*cos(t4))); //incognita del sistema matricial//
  32. t3=t3+dt3; //t3+dt3 representa el valor real de t3 para un cierto valor de t2//
  33. t4=t4+dt4; //t4+dt4 representa el valor real de t4 para un cierto valor de t2//
  34. i=i+1; //iteramos para obtener valores de t3 y t4 que se aproximen mas al real//
  35. }
  36. printf("%3.0f\t%3.4f\t\t%3.4f\n", t2, t3*180/pi, t4*180/pi);
  37. fprintf(doc, "%3.0f\t%3.4f\t\t%3.4f\n", t2, t3*180/pi, t4*180/pi); //escribimos los datos en el archivo de texto//
  38. t2=t2+1;
  39. }
  40. fclose (doc); //cerramos y guardamos el archivo//
  41. return 0;
  42. }
  43.  


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: PROBLEMA CON UNA VARIABLE
« Respuesta #1 en: 21 Febrero 2014, 14:04 pm »

La verdad es que el código es un poco infumable.

Deberías plantearte usar nombres de variables que digan algo... no tiene sentido tener que ir a los comentarios cada vez que veo un tX para saber qué se supone que ha de contener.

Además, la librería math.h ya tiene un define PI , te puedes ahorrar esa variable.

Los valores que son constantes casi es mejor declararlos con #define o con const. de esa forma te aseguras que no los vas a poder modificar por error.

Otro detalle a tener en cuenta es que "i" no está siendo inicializada en cada pasada del primer bucle... por lo que sólo entrarás en el segundo bucle una vez.


En línea

NikNitro!


Desconectado Desconectado

Mensajes: 1.309


Galletaaa!!!


Ver Perfil WWW
Re: PROBLEMA CON UNA VARIABLE
« Respuesta #2 en: 21 Febrero 2014, 14:19 pm »

Yo eso no lo leo... Si lo cambias me avisas. Con seguir los consejos de eferion debería bastar.

Salud;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con variable
Scripting
kraszic 6 4,177 Último mensaje 2 Agosto 2008, 00:42 am
por kraszic
Problema variable j
Programación C/C++
Ander123 6 2,881 Último mensaje 28 Octubre 2012, 12:57 pm
por DickGumshoe
Problema con variable de sesion y variable de conexion
PHP
Vaagish 9 6,357 Último mensaje 19 Marzo 2013, 22:37 pm
por Vaagish
MOVIDO: Asignar un valor a una variable(ScriptA)Obtener esa variable (ScriptB)-UNITY c#
Scripting
Eleкtro 0 2,917 Último mensaje 8 Octubre 2013, 17:49 pm
por Eleкtro
Problema en variable int « 1 2 3 »
Programación C/C++
meoit ARG 21 8,146 Último mensaje 30 Abril 2014, 20:49 pm
por Blaster
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines