Ayuda Programa C++

Iniciado por chinoman1993, 9 Octubre 2012, 18:36 PM

0 Miembros y 1 Visitante están viendo este tema.

chinoman1993

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

#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);

}

x64core

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

chinoman1993

Cita de: RHL 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

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