Dev - C++ - ayuda, con bucle do while,

   
Vista:

ayuda, con bucle do while,

Publicado por jorge (1 intervención) el 06/09/2013 10:00:28
agredeceria si me ayudan a corregir este programa en dev c++.

es programa debe encontrar una raiz de la ecuacion f(x)=xcos (x^2)-4 en el intervalo -8.5 a -8 con el metodo de biseccion modificado con un error de tolerancia de .001 en 50 calculos. ya funciona al parecer si encuentra la raiz, pero tengo problemas con bucle Do While, una vez que determin la raiz (la interseccion en x) este ultimo calculo con su solucion lo repite sin parar. dejo el codigo
no se si estoy usando correctamente bucle Do While, ya que no estoy familiarizado con ella. pero debo usarla para hacer este programa.
y si me pudieran ayudar para que los datos se impriman como si estuviesen en una tabla(aunque no exista tal tabla)

#include<iostream>
#include<math.h>
#include<stdlib.h>

using namespace std;
int main()

{

//declaracion de variables
float x=0,a=0,b=0,c=0,fa=0,fb=0,fc=0,error=0,n=0;

//lectura de variables
cout<<"ingrese el valor de a ";
cin>>a;
cout<<"ingrese el valor de c ";
cin>>c;
cout<<"ingrese el error de tolerancia ";
cin>>error;
cout<<"ingrese el numero de calculos ";
cin>>n;
system("cls");


cout<<"N............A ..........B..........C.........F(A).........F(B)............ F(c)........."<<endl;
//calculos
fa=(a*cos(a*a))-4;
fc=(c*cos(c*c))-4;
x=1;
do
{
if(x>n)
{
cout<<"no hay solucion"<<endl;
}
else

if(fa*fc<=0)
{
b=(a+c)/2;
fb=b*cos(b*b)-4;
cout<<x<<" "<<a<<" "<<b<<" "<<c<<" "<<fa<<" "<<fb<<" "<<fc<<endl;
if(abs(fb)<=error)
{
cout<<"La Raiz es "<<b<<endl;
}
else
{
if(fb*fc<0)
{
a=b;
fa=fb;
x=x+1;
}
else
{
c=b;
fc=fb;
x=x+1;
}

}
}
else
{
cout<<"no hay solucion"<<endl;
}


}while(x<=1);

return 0;

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

ayuda, con bucle do while,

Publicado por JuanC juanc2942@gmail.com (35 intervenciones) el 07/09/2013 23:37:52
deberías usar un break; en algún lugar para interrumpir el ciclo...

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar