Para poder empezar a ver bien los métodos debemos saber como regla básica creo yo. el calculo de raíces de una ecuación. Tendremos en cuenta que habrá que habra 3 tipo de soluciones como se ha visto en los cursos de calculo desde la secundaria.
En este programa se calculan las raíces de una ecuación de segundo grado y se muestra como queda ya una vez corrido programa :
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <process.h>
class Formula
{
private :
double a;
double b;
double c;
double d;
public :
Formula( );
void Leer( );
double CalD( );
void Reales( );
void Imag( );
~Formula( );
};
int main ( )
{ clrscr();
char opc;
do
{
system( "cls" );
Formula F;
cout << " \tEste Programa calcula las raices de una ecuacion de segundo grado \
por medio de la formula general que es....Ax2+Bx+C" << endl << endl;
F.Leer( );
if( F.CalD( )>=0 )
F.Reales( );
else
F.Imag( );
cout << " DESEA CONTINUAR S/N ";
cout << endl;
opc=getch( );
system( "pause" );
clrscr();
}while( opc=='S' || opc=='s' );
return 0;
}
Formula :: Formula ( )
{
a = 0.0;
b = 0.0;
c = 0.0;
d = 0.0;
}
Formula :: ~Formula( )
{
cout << " Termina el programa ";
cout << endl;
system( " pause " );
}
void Formula :: Leer( )
{
cout << " Dame el valor de a : ";
cin >> a;
cout << " Dame el valor de b : ";
cin >> b;
cout << " Dame el valor de c : ";
cin >> c;
cout << endl << endl<<endl;
}
double Formula :: CalD( )
{
d = pow( b,2 ) - ( 4*( a*c ) ) ;
return d;
}
void Formula :: Reales( )
{
double X1;
double X2;
double X;
if( a == 0 )
{
cout << " Raiz Unica : " << endl;
X = - c / b;
cout << " X = " << X << endl << endl;
}
else
{
cout << " Soluciones reales y distintas : " << endl;
X1 = -b + sqrt( d );
X1 = X1 / ( 2*a ) ;
cout << " \tX1 = " << X1 << endl;
X2 = -b - sqrt( d );
X2 = X2 / ( 2*a );
cout << " \tX2 = " << X2 << endl << endl;
}
}
void Formula :: Imag( )
{
cout << " Soluciones Imaginarias : " << endl;
cout << " \tX1 = " << -b / ( 2*a ) << " i " << + ( -1 )*sqrt( -d ) / ( 2*a ) << " i " << endl;
cout << " \tX2 = " << -b / ( 2*a ) << " - i " << ( -1 )* sqrt( -d ) / ( 2*a ) << endl << endl;
}
El programa queda así:
No hay comentarios:
Publicar un comentario