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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Floating point error:Divide by 0.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Floating point error:Divide by 0.  (Leído 2,809 veces)
MartyMcfly

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Floating point error:Divide by 0.
« en: 4 Mayo 2011, 19:49 pm »

Abnormal program termination
El problema es que segun yo no enmcuentro ningun erro en la logica las operaciones son las correctas. El programa consiste en aproximar raices por el metodo de punto secante eh estado checando y si borro las operaciones que realiza en if(c==2) if(f>1),y las de if(c==3) y if(c==2) cuandpo borro las operaciones que realiza en estas sentencias el programa no produce el Abnormal program termination crei que era por que realizaba muchas operaciones en los parentesis pero hice las operaciones por partees y me sigue lanzando ese error.
Investigue en internet y la verda no entendi muy hablan que las soluciones de IEEE donde los datos de punto fijo estandarizado sirven para este tipo de casos pero que en c++ no existe uno que soporte este tipo de errores aritmeticos bueno qui les dejo mi programa, el programa ovimente no tiene errores en cuanto a las sentenscias y su correcta escritura de que corre corre pero aborta los resultados debido a ese error ya que es mas bien un error de la logica computacional:

Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<math.h>
  4. void main()
  5. {
  6. int x,lm,co,f,c,fil=4;
  7. float x0,x1,ax,tb[50][50];
  8. clrscr();
  9. printf("Dame el valor de la x0=");
  10. scanf("%f",&x0);
  11. printf("Dame el valor de la x1=");
  12. scanf("%f",&x1);
  13. printf("¨Cual es el porcentaje de error limite ? ");
  14. scanf("%i",&lm);   ax=lm;
  15. for(f=0;f<50;f++){ if(ax>=lm){ x=f;
  16. for(c=0;c<5;c++) {
  17. if(c==0) { tb[f][c]=f; }
  18. if(c==1) {tb[f][c]=f;}
  19. if(c==2) { if(f==0){ tb[f][c]=x0; }if(f==1){ tb[f][c]=x1; }
  20. if(f>1){ tb[f][c]=tb[f-1][2]-(((tb[f-1][3])*(tb[f-2][2]-tb[f-1][2]))/(tb[f-2][3]-tb[f-1][3]));}}
  21. if(c==3) { tb[f][c]=(exp(tb[f][2]*tb[f][2]))-tb[f][2]; }
  22. if(c==4) { ax=((tb[f][2]-tb[f-1][2])/tb[f][2])*100;
  23. if(ax<0){ax=ax*-1;}tb[f][c]=ax;}
  24. }
  25. }
  26. else{break;}
  27. }
  28. for(f=0;f<=x;f++){ co=7; fil=fil+2;
  29. for(c=0;c<5;c++) {
  30. gotoxy(co,fil);
  31. printf("%f",tb[f][c]); co=co+10; }}
  32.  
  33. getch();
  34. }
  35.  


En línea

Acermax

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: Floating point error:Divide by 0.
« Respuesta #1 en: 4 Mayo 2011, 21:17 pm »

El error es muy claro, intentas hacer una división por 0, así que hay algo que no funciona como quieres, te recomiendo que lo depures y vayas echandole un vistazo a las cosas.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ejercicio de Divide y Venceras
Programación General
gian153 3 6,328 Último mensaje 30 Septiembre 2010, 02:30 am
por [L]ord [R]NA
Wikileaks se divide
Noticias
wolfbcn 1 2,280 Último mensaje 10 Noviembre 2010, 22:50 pm
por Draklit
Floating point exception al ejecutar aircrack-ng
Wireless en Linux
googie49 1 3,787 Último mensaje 25 Agosto 2012, 18:31 pm
por ruben1980
floating point invalid operation
Programación C/C++
Riverxz 2 2,691 Último mensaje 31 Agosto 2016, 02:40 am
por Riverxz
Illegal use of floating point
Programación C/C++
Riverxz 1 2,505 Último mensaje 11 Septiembre 2016, 09:07 am
por BloodSharp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines