Tengo la clase Racional el fichero racional.h
Código
Y el main
#ifndef RACIONAL_H #define RACIONAL_H #include <iostream> #include <math.h> using namespace std; class racional{ public: racional(int a2=0, int b2=0) : num(a2), den(b2) {} void guardar(int a2, int b2); void leer(int &a2, int &b2); void suma(const racional, const racional); void resta(const racional, const racional); void potencia(const racional &, int valor); float decimal(float d); void mostrar(); private: int num, den; }; void racional::guardar(int a2, int b2) { num=a2; den=b2; } void racional::leer(int &a2, int &b2) { a2=num; b2=den; } void racional::suma(const racional Uno, const racional Dos) { num=Uno.num*Dos.den+Uno.den*Dos.num; den=Uno.den*Dos.den; } void racional::resta(const racional Uno, const racional Dos) { num=Uno.num*Dos.den-Uno.den*Dos.num; den=Uno.den*Dos.den; } void racional::potencia(const racional &R, int valor) { num=pow(R.num,valor); den=pow(R.den,valor); } float racional::decimal(float d) { d=float(num)/float(den); return d; } void racional::mostrar() { cout<<"Racional: "<<num<<"/"<<den<<endl; } #endif
Código
A mi hay cositas que no me convence como el metodo potencia de la clase racional
#include "racional.h" int main() { racional uno(3,4), dos(1,4), tres; float decimal; tres.suma(uno,dos); cout<<"Suma ";tres.mostrar(); tres.resta(uno,dos); cout<<"Resta ";tres.mostrar(); tres.potencia(uno,3); cout<<"Potencia ";tres.mostrar(); cout<<"Decimal: "<<uno.decimal(decimal)<<endl; system("pause"); return 0; }