PRACTICA 5 PROGRA

Páginas: 8 (1903 palabras) Publicado: 15 de octubre de 2015
 Instituto Politécnico Nacional

Escuela Superior de Ingeniería Mecánica Eléctrica
Zacatenco

Programación Orientada a Objetos

Profesora Lic. María Ivonne Gutiérrez Villalba

Pineda Casas Karina

Boleta: 2015301484

Grupo: 2CM15
PRACTICA 5



OBJETIVO
Conocer y aplicar en los métodos numéricos el concepto de Herencia, observando las ventajas que en la aplicación se tiene.INTRODUCCION
DESARROLLO

Ejercicio 1. METODO DE BISECCION
#include

#include

#include

using namespace std;

class Raices //clase base hereda intervalos, el lìmite de error y la funciòn sobre la cual encontraremos la raiz

{

protected:

float xa, xb,xr;//intervalos de busqueda de raìz y xr aprox. a la raiz.

float er; //error

public:

Raices()//constructor por omisiòn{xa=xb=xr=0;

}

float funcion(float x)

{

return(pow(x,2)-2);//Proponga funciòn a encontrar la raìz

}



float eval()//metodo que evalua si existe de inicio raiz en el intervalo propuesto

{

if (funcion(xa)*funcion(xb)<0)

return 1;

else

return 0;

}

void introduce_intervalos()//metodo que introduce los intervalos

{

cout<<"Introduce el intervalo xa...."<
cin>>xa;cout<<"Introduce el intervalo xb...."<
cin>>xb;

cout<<"introduce el limite del error"<
cin>>er;

}



};//clase Raices



class biseccion: public Raices//clase derivada

{



public:

biseccion():Raices()

{}

void m_bisecc()//algoritmo de biseccion

{

float vant=xr, vact,e;

if (eval()==1)

{

do

{

xr=(xa+xb)/2; // nueva aproximacion a la raiz.

vact=xr;e=error(vact,vant);

imprime(xa,xr,xb,e);

if (funcion(xa)*funcion(xr)<0) //la raiz esta en intervalo xa y xr

{

xb=xr;

}

else if(funcion(xb)*funcion(xr)<0) //la raiz esta en intervalo xr y xb

{

xa=xr;

}

//++;

vant=xr;



}while(e>er);//while mientras se llega al error limitado por el usuario

cout<
cout<<"Aproximacion a la raiz es..."<


}//ifelse if (eval()==0)// si no hay raiz en el intervalo

{

cout<<"no hay raiz"<
} //else if

} //m_bisecc



void imprime(float a, float r, float b, float e)//metodo que imprime iteracion por iteracion como cambia el intervalo

{

cout<
}



float error(float vact, float vant)//metodo que calcula el error

{return(fabs((vact-vant)/vact)*100);

}

};//clase bisecccion

int main()

{

system("color 8A");

biseccion objbisec;

objbisec.introduce_intervalos();

objbisec.m_bisecc();

getch();



}

Ejercicio 1. METODO DE BREGLA FALSA
#include

#include

#include

using namespace std;

class Raices //clase base hereda intervalos, el lìmite de error y la funciòn sobre la cual encontraremos laraiz

{

protected:

float xa, xb,xr;//intervalos de busqueda de raìz y xr aprox. a la raiz.

float er; //error

public:

Raices()//constructor por omisiòn

{xa=xb=xr=0;

}

float funcion(float x)

{

return(pow(x,2)-2);//Proponga funciòn a encontrar la raìz

}



float eval()//metodo que evalua si existe de inicio raiz en el intervalo propuesto

{

if (funcion(xa)*funcion(xb)<0)return 1;

else if (funcion(xa)*funcion(xb)>0)

return 0;
else if (funcion(xa)*funcion(xb)==0)
return 2;

}

void introduce_intervalos()//metodo que introduce los intervalos

{

cout<<"Introduce el intervalo xa...."<
cin>>xa;

cout<<"Introduce el intervalo xb...."<
cin>>xb;

cout<<"introduce el limite del error"<
cin>>er;

}



};//clase Raices



classbiseccion: public Raices//clase derivada

{



public:

biseccion():Raices()

{}

void m_bisecc()//algoritmo de biseccion

{

float vant=xr, vact,e;

if (eval()==1)

{

do

{

xr=xb-(funcion(xb)*(xa-xb))/(funcion(xa)-funcion(xb)); // nueva aproximacion a la raiz.

vact=xr;

e=error(vact,vant);

imprime(xa,xr,xb,e);

if (funcion(xa)*funcion(xr)<0) //la raiz esta en intervalo xa y xr...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Practica 5
  • practica 5
  • PRÁCTICA No 5
  • practica 5
  • Practico 5
  • PRACTICA 5
  • Practica 5
  • Practica 5

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS