Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: chinoman1993 en 9 Octubre 2012, 18:36 pm



Título: Ayuda Programa C++
Publicado por: chinoman1993 en 9 Octubre 2012, 18:36 pm
Estoy haciendo un programa en C++ para resolver ecuaciones de segundo grado el problema es que al validar si se tienen coeficientes fraccionarios el compilador (Visual C++ 2010) me marca error en que estoy usando las variables x1,x2,a,b,c y discriminante las estoy usando sin inicializarlas ,pero segun yo si le estoy asignando datos correctamente, antes de hacer la validacion de coeficientes fraccionarios, funcionaba perfectamente obviamente antes de ingresar coeficientes fraccionarios

Código:
#include <math.h>//Para usar pow y sqrt
#include <iostream>
using namespace std;
void main()
{
int repetir=1,fraccionario;
char opcion;
float numerador,denominador,a,b,c,x1,x2,discri…
do //Ciclo do while para repetir el programa si el usuario lo desea
{
cout<<"Este programa sirve para resolver ecuaciones de segundo grado"<<endl<<endl;
cout<<"\xA8 \bQue tipo de ecuaci\xA2n de segundo grado desea resolver?"<<endl<<endl;
cout<<"De la forma: ax\xFD+bx+c=0, Presionar A"<<endl;
cout<<"De la forma: ax\xFD+c=0, Presionar B"<<endl;
cout<<"De la forma: ax\xFD+bx=0, Presionar C"<<endl;
cout<<"Opci\xA2n: ";
cin>>opcion;
switch(opcion)
{
case 'A': case 'a':
cout<<"\xA8 \bLa ecucacion contiene coeficientes fraccionarios?"<<endl;
cout<<"En caso de que si presione 1"<<endl;
cout<<"En caso de que no presione 2"<<endl;
cin>>fraccionario;
system("cls");
if (fraccionario==1)//Validacion en caso de que la ecuacion tenga exponentes fraccionarios
{
cout<<endl<<"Ingrese el valor del coeficiente del termino cuadratico: ";
cin>>numerador>>denominador;
a=numerador/denominador;
numerador=0;
denominador=0;
cout<<endl<<"Ingrese el valor del coeficiente del termino lineal: ";
cin>>numerador>>denominador;
b=numerador/denominador;
numerador=0;
denominador=0;
cout<<endl<<"Ingrese el valor del coeficiente del termino independiente: ";
cin>>numerador>>denominador;
c=numerador/denominador;
numerador=0;
denominador=0;
discriminante=pow(b,2)-4*a*c;

}
if (fraccionario==0)
{
cout<<endl<<"Ingrese el valor del coeficiente del termino cuadratico: ";
cin>>a;
cout<<endl<<"Ingrese el valor del coeficiente del termino lineal: ";
cin>>b;
cout<<endl<<"Ingrese el valor del coeficiente del termino independiente: ";
cin>>c;
discriminante=pow(b,2)-4*a*c;
}
if (discriminante>0)
{
x1=((-b)+(sqrt(discriminante)))/(2*…
x2=((-b)-(sqrt(discriminante)))/(2*…
}
if (discriminante==0)
{
x1=(-b)/(2*a);
x2=x1;
}
if (discriminante<0)
{
x1=((-b)/(2*a))+(sqrt(-discriminant…
x2=((-b)/(2*a))-(sqrt(-discriminant…
cout<<endl<<"Las raices de la ecuacion son:"<<endl<<endl;
if (x1==1)
{
if (x2==-1)
cout<<"\tx1=i"<<endl;
cout<<"\tx2=-i"<<endl;
}
else
{
cout<<"\tx1="<<x1<<" i"<<endl;
cout<<"\tx2="<<x2<<" i"<<endl;
}
}
else
{
cout<<endl<<"Las raices de la ecuacion son:"<<endl<<endl;
cout<<"\tx1="<<x1<<endl;
cout<<"\tx2="<<x2<<endl;
}
break;
case 'B': case 'b': //Falta actualizar por ahora es una copia del case 'a'
cout<<endl<<"Ingrese el valor del coeficiente del termino cuadratico: ";
cin>>a;
cout<<endl<<"Ingrese el valor del coeficiente del termino lineal: ";
cin>>b;
cout<<endl<<"Ingrese el valor del coeficiente del termino independiente: ";
cin>>c;
x1=((-b)+(sqrt(discriminante)))/(2*a…
x2=((-b)-(sqrt(discriminante)))/(2*a…
cout<<"Las raices de la ecuacion son:"<<endl;
cout<<"\tx1="<<x1<<endl;
cout<<"\tx2="<<x2<<endl;
break;
default:
cout<<"Elija una opci\xA2n valida"<<endl;
cout<<"Opci\xA2n: ";
cin>>opcion;
break;
}
cout<<endl<<"Para realizar otro calculo presione 1, para salir presione 0"<<endl;
cout<<"Opci\xA2n: ";
cin>>repetir;
system("cls");
}while(repetir==1);

}


Título: Re: Ayuda Programa C++
Publicado por: x64core en 9 Octubre 2012, 19:04 pm
pues te marca warnings, no errores, los warnings no importan, el compilador nada màs te avisa que la variable(s) locales no se han inicializado, eso es normal, si no los queres mirar los podes quitar con las instrucciones del preprocesador
http://msdn.microsoft.com/en-us/library/thxezb7y.aspx


Título: Re: Ayuda Programa C++
Publicado por: chinoman1993 en 9 Octubre 2012, 19:10 pm
pues te marca warnings, no errores, los warnings no importan, el compilador nada màs te avisa que la variable(s) locales no se han inicializado, eso es normal, si no los queres mirar los podes quitar con las instrucciones del preprocesador
http://msdn.microsoft.com/en-us/library/thxezb7y.aspx

Bueno el programa en si corre,creo que no me explique bien es a la hora de que el usuario ingresa los coeficientes cuando ya hay problemas, asi que mi duda es valide correctamente la insercion de valores fraccionarios? de ser asi cual es el fallo en el codigo por el cual no se inicializan las variables, y si no esta bien validado como se valida?, porfavor ya que es lo unico que me esta fregando el programa y no se donde ni como moverle