Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Riverxz

#1
Programación C/C++ / Illegal use of floating point
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 (cpp) [Seleccionar]
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>

#define linea "-------------------------------------------------------------------"
void main()
{int n,i,num;
float x[50],m,a,b,aux=0,j,sup[50],inf[50];
double ran,prob[50],aux2;

do
{
  gotoxy(5,5);clreol();
  gotoxy(5,5);cout<<"ingrese cantidad de intervalos :";cin>>n;
}while(!(n>0 && n<=50));

gotoxy(5,7);cout<<"Nro Cota sup.   Cota inf.       Media     Prob.";
gotoxy(5,8);cout<<linea;
gotoxy(5,9+n);cout<<linea;
for(i=1;i<=n;i++)
{
  gotoxy(5,8+i);cout<<i<<".-";
}
aux=0;
m=100;
for(i=1;i<=n;i++)
{
  if(i==1) //para el primer dato//
   {
    do
     {
      gotoxy(18,8+i);clreol(); //cota inferior de intervalo//
      gotoxy(18,8+i);cin>>a;
     }while(!(a>=aux));
    inf[i]=a;
    do
     {
      gotoxy(35,8+i);clreol(); //cota superior de intervalo//
      gotoxy(35,8+i);cin>>b;
     }while(!(b>=a));
    sup[i]=b;
    aux=b;
    x[i]=(a+b)/2;
    gotoxy(51,8+i);cout<<x[i];
    if(i!=n)
     {
      if(m!=0)
       {
        do
         {
          gotoxy(61,8+i);clreol();  //ingresar la probabilidad//
          gotoxy(61,8+i);cin>>prob[i];

         }while(!(prob[i]>=0 && prob[i]<=m));
        gotoxy(68,8+i);cout<<"%";
       }
      else
       {
        gotoxy(61,8+i);cout<<"0";
        gotoxy(68,8+i);cout<<"%";
        prob[i]=0;
       }
      m=m-prob[i];
     }
    else
     {
      gotoxy(61,8+i);cout<<"m";
      gotoxy(68,8+i);cout<<"%";
      prob[i]=m;
     }

   }
  else
   {
     gotoxy(18,8+i);cout<<aux;
     inf[i]=aux;
     do
     {
      gotoxy(35,8+i);clreol();
      gotoxy(35,8+i);cin>>b;
     }while(!(b>=aux));
     sup[i]=b;
     x[i]=(aux+b)/2;
     aux=b;
    gotoxy(51,8+i);cout<<x[i];
    if(i!=n)
     {
      if(m!=0)
       {
        do
         {
          gotoxy(61,8+i);clreol();  //ingresar la probabilidad//
          gotoxy(61,8+i);cin>>prob[i];

         }while(!(prob[i]>=0 && prob[i]<=m));
        gotoxy(68,8+i);cout<<"%";
       }
      else
       {
        gotoxy(61,8+i);cout<<"0";
        gotoxy(68,8+i);cout<<"%";
        prob[i]=0;
       }
      m=m-prob[i];
     }
    else
     {
      gotoxy(61,8+i);cout<<m;
      gotoxy(68,8+i);cout<<"%";
      prob[i]=m;
     }
   }
}
gotoxy(5,11+n);cout<<"Ingrese cantidad de datos a simular :";cin>>num;

system("cls");

gotoxy(5,7);cout<<"Nro Random Resultado";
gotoxy(5,8);cout<<linea;
gotoxy(5,9+num);cout<<linea;
for(i=1;i<=num;i++)
{
  gotoxy(5,8+i);cout<<i<<".-";
}
for(i=1;i<=num;i++)
{
  ran = (rand() % 100 + 1)/1.0;
  gotoxy(15,8+i);cout<<ran;
  for(j=1;j<=n;j++)//aca ocurre el error//
   {
    if(j==1)
     {
      if((ran>=0))
       {
        aux2=x[j]; //->Esta asignacion bota el error<-//
        gotoxy(30,8+i);cout<<aux2;
       }
     }
   }

}
getche();
}
#2
Programación C/C++ / ¿Como validar datos?
31 Agosto 2016, 04:29 AM
Buenas colega, estoy buscando una función para C++ que no puedo encontrar en la red  :-\. En la clase de LPE pedían ingresar el sexo (Char[15]) y que lo elimine si la cadena no es masculino o femenino.
PE:

El programa:
"Ingrese el sexo:"

se ingresa:
"Ingrese el sexo:abcd"
se imprime:
"Ingrese el sexo:"

O sea, que el programa elimine "abcd" y en esa misma linea permita introducir otro dato. El profe en clase lo resolvió con una función, la cual no recuerdo ahora su nombre. ¿Alguna ayuda? Espero que me haya podido dejar entender
#3
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 (cpp) [Seleccionar]
#include<iostream.h>
#include<conio.h>
#include<math.h>

void main()
{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;
gotoxy(10,10);cout<<"Ingrese edad :";cin>>ed;
while(ed>0 && ed<1000)
  {
   n++;
   if(ed<10 && ed>0)
    {
     cant1++;
     sec1=sec1+ed*pow(10,cant1-1);
     n1++;
     if(ed%2==0)
      {
       secPAR1=secPAR1+ed*pow(10,cantPAR1);
       cantPAR1++;
      }
     else
      {
       secIMP1=secIMP1+ed*pow(10,cantIMP1);
       cantIMP1++;
      }
    }
   else
    {
     if(ed<100 && ed>0)
      {
       cant2++;
       sec2=sec2+ed*pow(100,cant2-1);
       n2++;
       if(ed%2==0)
        {
         secPAR2=secPAR2+ed*pow(10,cantPAR2);
         cantPAR2++;
        }
       else
        {
         secIMP2=secIMP2+ed*pow(100,cantIMP2);
         cantIMP2++;
        }
      }
     else
      {
       if(ed<1000 && ed>0)
        {

         sec3=sec3+ed*pow(1000,cant3-1);
         n3++;
         cant3++;
         if(ed%2==0)
          {
           secPAR3=secPAR3+ed*pow(1000,cantPAR3);
           cantPAR3++;
          }
         else
          {
           secIMP3=secIMP3+ed*pow(1000,secIMP3);
           cantIMP3++;
          }


        }
      }
    }
   gotoxy(10,10+n);cout<<"Ingrese edad :";cin>>ed;
  }
if(sec1>0)
  {
   gotoxy(10,12+n);cout<<"Secuencia de un digito :"<<sec1;
  }
else
  {
   gotoxy(10,12+n);cout<<"Secuencia de un digito :No hay";
  }
if(sec2>0)
  {
   gotoxy(10,13+n);cout<<"Secuencia de dos digito :"<<sec2;
  }
else
  {
   gotoxy(10,13+n);cout<<"Secuencia de dos digito :No hay";
  }
if(sec3>0)
  {
   gotoxy(10,14+n);cout<<"Secuencia de tres digito :"<<sec3;
  }
else
  {
   gotoxy(10,14+n);cout<<"Secuencia de tres digito :No hay";
  }
gotoxy(10,16+n);cout<<"TOTAL:";
gotoxy(10,17+n);cout<<n1<<" Edades de una cifra";
gotoxy(10,18+n);cout<<n2<<" Edades de dos cifra";
gotoxy(10,19+n);cout<<n3<<" Edades de tres cifra";
getche();

}
#4
Programación C/C++ / Problema de programación
27 Agosto 2016, 04:58 AM
Buenas colegas  :D tengo el siguiente problema. Piden ingresar un número e indicar si este se puede expresar como la suma de dos enteros al cuadrado. Bueno aqui está lo que he avanzado pero me bota errores ¿alguna ayuda?

Código (cpp) [Seleccionar]
#include<iostream.h>
#include<conio.h>
#include<math.h>

void main()
{int n=-1,a=1,b=1,cont=0;
while(n<0)
  {
   cout<<"Ingrese un numero: ";cin>>n;
   getche();
  }
while(a<n)
  {
   while(b<n)
    {
     if(pow(a,2)+pow(b,2) == pow(n,2))
      {
       cont++;
       cout<<a<<"^2"<<" + "<<b<<"^2"<<" = "<<n;
      }
     b++;
    }
   a++;
  }
if (cont==0)
  {
   cout<<"No hay dos cuadrados enteros que sumen "<<n;
  }
else
  {
   cout<<"En total hay "<<cont<<" cuadrados enteros que sumen "<<n;
  }
getche();
}
#5
Buenas  :D, recien estoy comenzando a programar el C++  y tengo el siguiente problema.
El programa debe recibir 3 notas, validarlas (entre 0 y 20), eliminar la menor y calcular el promedio. Mi problema está al validar la tercera nota, pues el programa manda el error "misplaced else"  :o
Aqui les dejo mi código:

Usuario: UNI
la clave: 100
//definir librerias
# include<iostream>
# include<stdlib.h>
# include<stdlib.h>
# include<conio.h>
# include<stdio.h>
# include<time.h>
# include<windows.h>
# include<iomanip>

# define linea "------------------------------------------------------------"

void main ()
{   char user[10];
   int psw,pc1,pc2,pc3;
  system("color 1B");system("title el mejor programa del mundo®");
  gotoxy(20,3);cout<<"MODELO DE VALIDACION";
  gotoxy(10,8);cout<<linea;
  gotoxy(10,15);cout<<linea;

   // getche();//ver mis resultados temporalmente

//lectura de datos

gotoxy(15,11);cout<<"usuario = "; gets(user);
gotoxy(25,11);cout<<"****";
gotoxy(15,13);cout<<"clave = ";cin>>psw;
gotoxy(23,13);cout<<"***";
getche();
if((strcmp(strupr(user),"UNI")==0)&&(psw==100))
   {clrscr();system("color 3A");
      gotoxy(10,4);cout<<"bienvenido.....";
      getche();
            gotoxy(10,4);cout<<" calcular promedio...";
            gotoxy(5,5);cout<<linea;

            gotoxy(15,6);cout<<"Pc1="; cin>>pc1;
            if(pc1>=0 && pc1<=20)
             {
              gotoxy(15,10);cout<<"Correcto!";
              gotoxy(10,12);cout<<"PC2= ";cin>>pc2;
                if(pc2>=0 && pc2<=20)
                 {
                  gotoxy(15,13);cout<<"Correcto!";
                  gotoxy(15,15);cout<<"PC3= ";cin>>pc3;
                    if(pc3>=0 && pc3<=20)
                    {
                      gotoxy(15,13);cout<<"Correcto!";

                      //busqueda del nùmero menor
                      int menor=20;

                      if(menor>pc1)
                      {menor=pc1;
                      }
                      if(menor>pc2)
                      {menor=pc2;
                      };
                      if(menor>pc3)
                      {menor=pc3;
                      }
                      gotoxy(15,17);cout<<"MENOR NOTA = "<<menor;
                      float pp;
                      pp=((pc1+pc2+pc3)-menor)/2.0;
                      gotoxy(15,19);cout<<"Promedio... = "<<pp;
                      gotoxy(15,20);
                      cout<<setw(10)<<setprecision(3)<<pp;
                    }
                    else
                    {
                      gotoxy(30,12);cout<<"Ha ingresado mal los datos";
                    }
                else
                 {
                  gotoxy(30,12);cout<<"Ha ingresado mal los datos";
                 }
             }
            else
             {
               gotoxy(39,12);cout<<"Ha ingresado mal los datos";
             }




   }
else
{
   clrscr();system("color 4A");
    gotoxy(30,12);cout<<"Sr. sus datos estàn errados";
}
getche ();//ver mis resultados temporalmente;
gotoxy(30,22);system("pause");//resultados en pantalla y mensaje "presina cualquier tecla para continuar";


}
}