Compilador: Borland C++
Código:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
class Biseccion
{
private:
float LimA;
float LimB;
float LimC;
float Es;
float Ea;
float Raiz;
public:
void IngrVal();
void ResBis();
float Funcion(float Var);
void CalcularEa();
};
void Biseccion::IngrVal()
{
cout<<endl<<" MÉTODO DE BISECCIÓN"<<endl<<endl;
cout<<"Busca la raiz cuadrada de un numero por el metodo de biseccion"<<endl<<endl;
do
{
cout<<"Ingrese el número del que quiere calcular la raiz"<<endl;
cin>>Raiz;
if(Raiz<=0)
{
cout<<"\n\n El programa no calcula raices negativas ni 0\n";
}
}while(Raiz<=0);
cout<<"Ingresa el limite Xa"<<endl;
cin>>LimA;
cout<<"Ingresa el limite Xb"<<endl;
cin>>LimB;
cout<<"Ingresa el error preestablecido Es(%)"<<endl;
cin>>Es;
}
void Biseccion::CalcularEa()
{
Ea=((LimA-LimB)/LimA)*(100);
Ea=fabs(Ea);
}
float Biseccion::Funcion(float Var)
{
float RFun;
RFun = (pow(Var,2)-Raiz);
return RFun;
}
void Biseccion::ResBis()
{
int i=0;
float Res;
gotoxy(5,15);
cout<<"Xa"<<endl;
gotoxy(15,15);
cout<<"Xb"<<endl;
gotoxy(25, 15);
cout<<"Xr"<<endl;
gotoxy(35,15);
cout<<"f(Xa)-f(Xb)"<<endl;
gotoxy(48,15);
cout<<" Ea"<<endl<<endl;
do
{
LimC=((LimA+LimB)/2);
Res=Funcion(LimA)*Funcion(LimC);
CalcularEa();
gotoxy(5,17+i);
cout<<LimA<<endl;
gotoxy(15,17+i);
cout<<LimB<<endl;
gotoxy(25, 17+i);
cout<<LimC<<endl;
gotoxy(35,17+i);
cout<<Res<<endl;
gotoxy(48,17+i);
cout<<Ea<<endl<<endl;
i++;
if(Res>0)
{
LimA=LimC;
}
else
{
LimB=LimC;
}
}while(Ea>Es);
cout<<"La raiz es: "<<LimC<<endl;
}
int main()
{
Biseccion a;
a.IngrVal();
a.ResBis();
getch();
return 0;
}
No hay comentarios:
Publicar un comentario