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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


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

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Illegal use of floating point
« en: 11 Septiembre 2016, 08:40 am »

Buenas colegas,  :D. Estoy programando un simulador de datos y no puedo corregir el error del floating point. Lo que pasa es que estoy asignando un valor de un vector de doubles a un auxiliar que tambien he declarado como double. No entiendo cual es el error aqui.

Aca el código.

Código
  1. #include<iostream.h>
  2. #include<conio.h>
  3. #include<stdio.h>
  4. #include<stdlib.h>
  5.  
  6. #define linea "-------------------------------------------------------------------"
  7. void main()
  8. {int n,i,num;
  9. float x[50],m,a,b,aux=0,j,sup[50],inf[50];
  10. double ran,prob[50],aux2;
  11.  
  12. do
  13. {
  14.  gotoxy(5,5);clreol();
  15.  gotoxy(5,5);cout<<"ingrese cantidad de intervalos :";cin>>n;
  16. }while(!(n>0 && n<=50));
  17.  
  18. gotoxy(5,7);cout<<"Nro Cota sup.  Cota inf.       Media    Prob.";
  19. gotoxy(5,8);cout<<linea;
  20. gotoxy(5,9+n);cout<<linea;
  21. for(i=1;i<=n;i++)
  22. {
  23.  gotoxy(5,8+i);cout<<i<<".-";
  24. }
  25. aux=0;
  26. m=100;
  27. for(i=1;i<=n;i++)
  28. {
  29.  if(i==1) //para el primer dato//
  30.   {
  31.    do
  32.     {
  33.      gotoxy(18,8+i);clreol(); //cota inferior de intervalo//
  34.      gotoxy(18,8+i);cin>>a;
  35.     }while(!(a>=aux));
  36.    inf[i]=a;
  37.    do
  38.     {
  39.      gotoxy(35,8+i);clreol(); //cota superior de intervalo//
  40.      gotoxy(35,8+i);cin>>b;
  41.     }while(!(b>=a));
  42.    sup[i]=b;
  43.    aux=b;
  44.    x[i]=(a+b)/2;
  45.    gotoxy(51,8+i);cout<<x[i];
  46.    if(i!=n)
  47.     {
  48.      if(m!=0)
  49.       {
  50.        do
  51.         {
  52.          gotoxy(61,8+i);clreol();  //ingresar la probabilidad//
  53.          gotoxy(61,8+i);cin>>prob[i];
  54.  
  55.         }while(!(prob[i]>=0 && prob[i]<=m));
  56.        gotoxy(68,8+i);cout<<"%";
  57.       }
  58.      else
  59.       {
  60.        gotoxy(61,8+i);cout<<"0";
  61.        gotoxy(68,8+i);cout<<"%";
  62.        prob[i]=0;
  63.       }
  64.      m=m-prob[i];
  65.     }
  66.    else
  67.     {
  68.      gotoxy(61,8+i);cout<<"m";
  69.      gotoxy(68,8+i);cout<<"%";
  70.      prob[i]=m;
  71.     }
  72.  
  73.   }
  74.  else
  75.   {
  76.     gotoxy(18,8+i);cout<<aux;
  77.     inf[i]=aux;
  78.     do
  79.     {
  80.      gotoxy(35,8+i);clreol();
  81.      gotoxy(35,8+i);cin>>b;
  82.     }while(!(b>=aux));
  83.     sup[i]=b;
  84.     x[i]=(aux+b)/2;
  85.     aux=b;
  86.    gotoxy(51,8+i);cout<<x[i];
  87.    if(i!=n)
  88.     {
  89.      if(m!=0)
  90.       {
  91.        do
  92.         {
  93.          gotoxy(61,8+i);clreol();  //ingresar la probabilidad//
  94.          gotoxy(61,8+i);cin>>prob[i];
  95.  
  96.         }while(!(prob[i]>=0 && prob[i]<=m));
  97.        gotoxy(68,8+i);cout<<"%";
  98.       }
  99.      else
  100.       {
  101.        gotoxy(61,8+i);cout<<"0";
  102.        gotoxy(68,8+i);cout<<"%";
  103.        prob[i]=0;
  104.       }
  105.      m=m-prob[i];
  106.     }
  107.    else
  108.     {
  109.      gotoxy(61,8+i);cout<<m;
  110.      gotoxy(68,8+i);cout<<"%";
  111.      prob[i]=m;
  112.     }
  113.   }
  114. }
  115. gotoxy(5,11+n);cout<<"Ingrese cantidad de datos a simular :";cin>>num;
  116.  
  117. system("cls");
  118.  
  119. gotoxy(5,7);cout<<"Nro Random Resultado";
  120. gotoxy(5,8);cout<<linea;
  121. gotoxy(5,9+num);cout<<linea;
  122. for(i=1;i<=num;i++)
  123. {
  124.  gotoxy(5,8+i);cout<<i<<".-";
  125. }
  126. for(i=1;i<=num;i++)
  127. {
  128.  ran = (rand() % 100 + 1)/1.0;
  129.  gotoxy(15,8+i);cout<<ran;
  130.  for(j=1;j<=n;j++)//aca ocurre el error//
  131.   {
  132.    if(j==1)
  133.     {
  134.      if((ran>=0))
  135.       {
  136.        aux2=x[j]; //->Esta asignacion bota el error<-//
  137.        gotoxy(30,8+i);cout<<aux2;
  138.       }
  139.     }
  140.   }
  141.  
  142. }
  143. getche();
  144. }


En línea

BloodSharp


Desconectado Desconectado

Mensajes: 813


¡ Hiperfoco !


Ver Perfil WWW
Re: Illegal use of floating point
« Respuesta #1 en: 11 Septiembre 2016, 09:07 am »

Jamás uses variables con float u double para especificar el elemento de un vector, en este caso j modifícalo como entero...

EDIT: j y n son de diferentes tipos... por lo que va a ver pérdida de datos, cuidado con eso en el futuro...


B#


« Última modificación: 11 Septiembre 2016, 09:23 am por BloodSharp » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Illegal disc???
Software
The Ghost 3 2,941 Último mensaje 1 Febrero 2005, 20:19 pm
por 182065
illegal medium en nero
Software
rulbury 1 2,036 Último mensaje 6 Abril 2005, 19:26 pm
por + enrique ZP
Floating point error:Divide by 0.
Programación C/C++
MartyMcfly 1 2,808 Último mensaje 4 Mayo 2011, 21:17 pm
por Acermax
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
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines