Adsence

viernes, 15 de julio de 2011

COORDENADAS

Leave a Comment


DISEÑE UN PROGRAMA EN C++ QUE PERMITA CONSTRIR DOS CLASES LLAMADAS COOR_REC Y COORD_POL. LA CLASE DENOMINADA COORD_REC DEBE CONTENER DOS MIEMBROS DE DATOS EN PUNTO FLOTANTE CON LOS NOMBRES VAL X E VALY, UQE HAN DE UTILIZARSE PARA ALMACENAR LOS VALORES X Y Y DE UN PUNTO DE COORDENADAS RECTANGULARES. LOS MIEMBROS FUNCION DEBEN INCLUIR EL CONSTRUCTOR APROPIADO Y LAS FUNCIONES DE DESPLIEGUE, JUNTO CON UNA FUNCION AMIGA DENOMINADA CONV_POL().



LA CLASE COOR_POL DEBE CONTENER DOS MIEMBROS EN PUNTO FLOTANTE DENOMINADOS DIST Y THETA, A SER UTILIZADOS PARA ALMACENAR LOS VALORES DE DISTANCIA Y ANGULO DE UN PUNTO REPRESENTADO EN COORDENADAS POLARES. LOS MIEMBROS FUNCION DEBEN INCLUIR EL CONSTRUCTOR APROPIADO Y FUNCIONES DE DESPLIEGUE, ASI COMO UNA FUNCIONES AMIGA CONV_POL(). LA FUNCIONES FRIEND DEBE ACEPTAR UN ARGUMENTO ENTERO QUE SE LLAME DIR: DOS ARGUMENTOS EN PUNTO FLOTANTE VAL1 Y VAL2; Y DOS ARGUMENTOS DE REFERENCIA, EL PRIMERO DE LOS CUALES DEBE SER REFERENCIA A UN OBJETO DE TIPO COOR_REC Y EL SEGUNDO A UN OBJETO DE TIPO COOR_POL. CONTRUYA EL PROGRAMA QUE PERMITA HACER LAS CONVERSIONES A LAS COORDENADAS QUE PIDA EL USUARIO


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

const int polarec=2;
const int recapol=1;
const float gradosaradian=3.141516/180;
const float radianagrados=1.0/gradosaradian;

class coor_pol;

class coor_rec {

friend void conv_pol(int,coor_rec&,coor_pol&);

private:
float valx;
float valy;

public:
coor_rec(float=0.0,float=0.0);
void nuevodat(float,float);
void despliegue ();
};

class coor_pol {

friend void conv_pol(int,coor_rec&,coor_pol&);

private:
float dist;
float theta;

public:
coor_pol(float=0.0,float=0.0);
void nuevodat(float,float);
void mostrardatos();
};



coor_rec::coor_rec(float x,float y)
{
valx=x;
valy=y;
}

void coor_rec::nuevodat(float xnuevo,float ynuevo)
{
valx=xnuevo;
valy=ynuevo;
}

void coor_rec::despliegue()
{
cout< < endl< < "EL VALOR DE X ES "< < valx;
cout< < endl< < "EL VALOR DE Y ES "< < valy;
cout< < endl;
}

coor_pol::coor_pol(float dista,float theti)
{
dist=dista;
theta=theti;
}

void coor_pol::nuevodat(float distance,float angulo)
{
dist=distance;
theta=angulo;
}

void coor_pol::mostrardatos()
{
cout< < endl< < "EL NUEVO VALOR DEL RADIO ES: "< < dist;
cout< < endl< < "EL NUEVO VALOR DE TETHA ES: "< < theta;
}

void conv_pol(int dir,coor_rec &a, coor_pol &b)
{
if(dir==polarec)
{
a.valx=b.dist*cos(b.theta*gradosaradian);
a.valy=b.dist*sin(b.theta*gradosaradian);
}

if(dir==recapol)
{
b.dist=sqrt(pow(a.valx,2)+pow(a.valy,2));
b.theta=tan((a.valy/a.valx)*radianagrados);
}
}

int main()
{
coor_rec a;
coor_pol b;
float coorx;
float coory;
int op;

cout< < endl< < "DESEA CONVERTIR: "< < endl;
cout< < "1-DE COORDENADAS RECTANGUALES A COORD POLARESn"< < "2-DE COORDENADAS POLARES A COORDENADAS RECTANGULARES"< < "nELIJA OPCION: ";
cin > >op;
cout< < endl;
switch(op){

case 1:
cout< < "INTRODUCE VALOR DE LA COORDENADA X: ";
cin > >coorx;
cout< < "INTRODUCE VALOR DE LA COORDENADA Y: ";
cin > >coory;

a.nuevodat(coorx,coory);
conv_pol(recapol,a,b);

b.mostrardatos();
break;

case 2:
int rad,angulo;
cout< < "INTRODUCE EL VALOR DEL RADIO: ";
cin > >rad;
cout< < "INTRODUCE EL VALOR DEL ANGULO: ";
cin > >angulo;

b.nuevodat(rad,angulo);
conv_pol(polarec,a,b);
a.despliegue();
break;
}

getch();
}

0 comentarios :