sábado, 18 de mayo de 2013

Un programa en C++ para pasar grados>radianes y al revés.

Seguimos peleando con esto de las clases dirigidas a objetos. No sé si algunos libros nos lo complican demasiado. Yo lo que he sacado en limpio lo estoy explotando para hacer programas que resuelvan problemas como cálculos geométricos o físicos. Este es un ejemplo. Sirve para pasar grados, minuto, segundos a radianes, y al revés.


#include<iostream>
#include<cmath>
#include "sexagra.h"
using namespace std;
int main(){
int opcion;
double g,m,s,r;
double rads;
double grados, minutos, segundos;
cout<<"1. Grados->Radianes"<<endl;
cout<<"2. Radianes ->Grados"<<endl;
cout<<"Pulsa 1 o 2"<<endl;
cin>>opcion;
if(opcion==1) {
cout<<"Dame los grados: ";cin>>g;
cout<<"Dame los minutos: ";cin>>m;
cout<<"Dame los segundos: ";cin>>s;
SexagRad ang(g,m,s);
rads=ang.gra2sexa();
cout<<"El ángulo en radianes vale "<<rads<<endl;
}
else {
cout<<"Dame el ángulo en radianes: "; cin>>r;
RadSexag1 ang1(r);
grados=ang1.rad2gra1();
minutos=ang1.rad2gra2();
segundos=ang1.rad2gra3();
cout<<r<<" radianes son "<<grados<<" grados y ";
cout<<minutos<<" minutos y ";
cout<<segundos<<" segundos"<<endl;
}
return 0;
}

Y este es el programa que contiene las dos clases.


class SexagRad
{
private:
double radianes;
double grados;
double minutos;
double segundos;
const static double pi=3.1415926;
public:
SexagRad (double g, double m, double s){
grados=g;
minutos=m;
segundos=s;
}
double gra2sexa(){
minutos = minutos + segundos/60;
grados = grados + minutos/60;
radianes = grados*pi/180;
return radianes;
}
};
class RadSexag1
{
private:
double radianes;
double grados;
double minutos;
double segundos;
const static double pi=3.1415926;
public:
RadSexag1 (double r){
radianes=r;
}
double rad2gra1(){
grados=radianes*180/pi;
return floor(grados);
}
double rad2gra2(){
grados=radianes*180/pi;
minutos=(grados-rad2gra1())*60;
return floor(minutos);
}
double rad2gra3(){
grados=radianes*180/pi;
minutos=(grados-rad2gra1())*60;
segundos = (minutos-rad2gra2())*60;
return floor(segundos);
}
};
Si a alguno le sirve, estupendo.

1 comentario:

  1. disculpa para que sirve el #include "sexagra.h" por que me marca error

    ResponderEliminar