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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


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

Desconectado Desconectado

Mensajes: 8


Ver Perfil
floating point invalid operation
« en: 30 Agosto 2016, 04:46 am »

Buenas colegas del foro  :D
He estado haciendo el código de un programa que bota secuencias de edades y sus repeticiones. El problema es que para valores de más de 9 edades el programa se corrompe y expulsa valores absurdos e inclusive llega a crashearse botando el siguiente error:
Threat1 stopped
Fault: floating point invalid operation at 0x4097db

Mi código es este:
Código
  1. #include<iostream.h>
  2. #include<conio.h>
  3. #include<math.h>
  4.  
  5. void main()
  6. {int ed,n=0,cant1=0,cantPAR1=0,cantIMP1=0,cant2=0,cantPAR2=0,cantIMP2=0,cant3=0,cantPAR3=0,cantIMP3=0,sec1=0,secPAR1=0,secIMP1=0,sec2=0,secPAR2=0,secIMP2=0,sec3=0,secPAR3=0,secIMP3=0,n1=0,n2=0,n3=0;
  7. gotoxy(10,10);cout<<"Ingrese edad :";cin>>ed;
  8. while(ed>0 && ed<1000)
  9.  {
  10.   n++;
  11.   if(ed<10 && ed>0)
  12.    {
  13.     cant1++;
  14.     sec1=sec1+ed*pow(10,cant1-1);
  15.     n1++;
  16.     if(ed%2==0)
  17.      {
  18.       secPAR1=secPAR1+ed*pow(10,cantPAR1);
  19.       cantPAR1++;
  20.      }
  21.     else
  22.      {
  23.       secIMP1=secIMP1+ed*pow(10,cantIMP1);
  24.       cantIMP1++;
  25.      }
  26.    }
  27.   else
  28.    {
  29.     if(ed<100 && ed>0)
  30.      {
  31.       cant2++;
  32.       sec2=sec2+ed*pow(100,cant2-1);
  33.       n2++;
  34.       if(ed%2==0)
  35.        {
  36.         secPAR2=secPAR2+ed*pow(10,cantPAR2);
  37.         cantPAR2++;
  38.        }
  39.       else
  40.        {
  41.         secIMP2=secIMP2+ed*pow(100,cantIMP2);
  42.         cantIMP2++;
  43.        }
  44.      }
  45.     else
  46.      {
  47.       if(ed<1000 && ed>0)
  48.        {
  49.  
  50.         sec3=sec3+ed*pow(1000,cant3-1);
  51.         n3++;
  52.         cant3++;
  53.         if(ed%2==0)
  54.          {
  55.           secPAR3=secPAR3+ed*pow(1000,cantPAR3);
  56.           cantPAR3++;
  57.          }
  58.         else
  59.          {
  60.           secIMP3=secIMP3+ed*pow(1000,secIMP3);
  61.           cantIMP3++;
  62.          }
  63.  
  64.  
  65.        }
  66.      }
  67.    }
  68.   gotoxy(10,10+n);cout<<"Ingrese edad :";cin>>ed;
  69.  }
  70. if(sec1>0)
  71.  {
  72.   gotoxy(10,12+n);cout<<"Secuencia de un digito :"<<sec1;
  73.  }
  74. else
  75.  {
  76.   gotoxy(10,12+n);cout<<"Secuencia de un digito :No hay";
  77.  }
  78. if(sec2>0)
  79.  {
  80.   gotoxy(10,13+n);cout<<"Secuencia de dos digito :"<<sec2;
  81.  }
  82. else
  83.  {
  84.   gotoxy(10,13+n);cout<<"Secuencia de dos digito :No hay";
  85.  }
  86. if(sec3>0)
  87.  {
  88.   gotoxy(10,14+n);cout<<"Secuencia de tres digito :"<<sec3;
  89.  }
  90. else
  91.  {
  92.   gotoxy(10,14+n);cout<<"Secuencia de tres digito :No hay";
  93.  }
  94. gotoxy(10,16+n);cout<<"TOTAL:";
  95. gotoxy(10,17+n);cout<<n1<<" Edades de una cifra";
  96. gotoxy(10,18+n);cout<<n2<<" Edades de dos cifra";
  97. gotoxy(10,19+n);cout<<n3<<" Edades de tres cifra";
  98. getche();
  99.  
  100. }


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.597


🏴 Libertad!!!!!


Ver Perfil WWW
Re: floating point invalid operation
« Respuesta #1 en: 30 Agosto 2016, 06:21 am »

Hola ten encuenta que la función pow es:

Código
  1. double pow(double x, double y);

Lo que significa que espera parametros double y tambien regresa un double, todos tus datos son enteros.

Ahora si agregaras algunos comentarios sobre tu codigo tal vez seria mas facil encontrar el error.

Si solo pasa con valores mayores que nueve entonces revisa bien tu parte del codigo donde esta el siguiente if.
Código
  1. if(ed<100 && ed>0)

Y la otra... cuando estas aprendiendo a programar... Olvidate de darle formato al texto evita el uso de gotoxy ademas no es una funcion  estandar, solo funciona para el turboC, no uses ninguna de las funciones de la libreria CONIO.

Concentrate en el algoritmo y deja un codigo mas sencillo.

Saludos


« Última modificación: 30 Agosto 2016, 06:23 am por AlbertoBSD » En línea

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
Riverxz

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: floating point invalid operation
« Respuesta #2 en: 31 Agosto 2016, 02:40 am »

Hola ten encuenta que la función pow es:

Código
  1. double pow(double x, double y);

Lo que significa que espera parametros double y tambien regresa un double, todos tus datos son enteros.

Ahora si agregaras algunos comentarios sobre tu codigo tal vez seria mas facil encontrar el error.

Si solo pasa con valores mayores que nueve entonces revisa bien tu parte del codigo donde esta el siguiente if.
Código
  1. if(ed<100 && ed>0)

Y la otra... cuando estas aprendiendo a programar... Olvidate de darle formato al texto evita el uso de gotoxy ademas no es una funcion  estandar, solo funciona para el turboC, no uses ninguna de las funciones de la libreria CONIO.

Concentrate en el algoritmo y deja un codigo mas sencillo.

Saludos

Gracias! :D  :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Invalid Operation Exception - ERROR: Clase No Registrada
.NET (C#, VB.NET, ASP)
lord_Sirikon 7 9,565 Último mensaje 13 Julio 2010, 21:17 pm
por lord_Sirikon
Floating point error:Divide by 0.
Programación C/C++
MartyMcfly 1 1,830 Último mensaje 4 Mayo 2011, 21:17 pm
por Acermax
Floating point exception al ejecutar aircrack-ng
Wireless en Linux
googie49 1 2,550 Último mensaje 25 Agosto 2012, 18:31 pm
por ruben1980
OPERATION 7
Ingeniería Inversa
ironkid25 1 884 Último mensaje 13 Enero 2016, 01:56 am
por MCKSys Argentina
Illegal use of floating point
Programación C/C++
Riverxz 1 1,115 Último mensaje 11 Septiembre 2016, 09:07 am
por BloodSharp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines