POO

Iniciado por Beginner Web, 4 Diciembre 2018, 00:25 AM

0 Miembros y 3 Visitantes están viendo este tema.

Beginner Web

Hola estuve dos dias estudiando POO y vine para corroborar si aprendí o no POO, despues sigo pasando programas para que me den sus opiniones
Tengo la clase Racional el fichero racional.h
Código (cpp) [Seleccionar]
#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

Y el main
Código (cpp) [Seleccionar]
#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;
}

A mi hay cositas que no me convence como el metodo potencia de la clase racional
7w7

AlbertoBSD

Cita de: Beginner Web en  4 Diciembre 2018, 00:25 AM
A mi hay cositas que no me convence como el metodo potencia de la clase racional

Para iniciar esta bien, pero que no te convence de la potencia?

Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

K-YreX

A mí lo que se me hace raro es el método <float racional::decimal(float)>. Es decir, para qué se le pasa un parámetro de tipo float? :huh:.
Digo yo que lo suyo sería pasarle el parámetro de tipo <float> por referencia y quitar el valor de retorno o bien dejar como valor de retorno un <float> y quitar el parámetro... no?? :rolleyes:
Código (cpp) [Seleccionar]

void racional::decimal(float &dec)const{
    dec = float(num) / float(den);
}

float racional::decimal()const{
    float dec = float(num) / float(den);
    return dec;
}
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

Beginner Web

Cita de: AlbertoBSD en  4 Diciembre 2018, 01:01 AM
Para iniciar esta bien, pero que no te convence de la potencia?

Saludos!
Esto
Código (cpp) [Seleccionar]
(const racional &R
Me marié, ya no se que hace este metodo, no se que objeto es el que modifica
7w7

AlbertoBSD

Cita de: z3nth10n en  4 Diciembre 2018, 01:38 AM
Menos mal que programo en C# 😂😂😂

El comentario no viene al caso. Favor de no hacer SPAM,

Cita de: Beginner Web en  4 Diciembre 2018, 02:07 AM
Esto
Código (cpp) [Seleccionar]
(const racional &R
Me marié, ya no se que hace este metodo, no se que objeto es el que modifica

El metodo toma los valores de la variable uno, le hace la operacion de potencia con 3 y lo guarda en la variable tres que es la que terminas imprimiendo en pantalla.
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

Beginner Web

Creo que el "&" esta demas tenia sueño cuando hice este ejercicio
7w7

K-YreX

Cita de: Beginner Web en  4 Diciembre 2018, 03:19 AM
Creo que el "&" esta demas tenia sueño cuando hice este ejercicio

En realidad no afecta el uso de "&". Es más, en objetos que sean muy grandes es recomendable pasar los parámetros constantes y por referencia ya que si no lo pasas por referencia la función va a hacer una copia del parámetro para lo que va a tener que reservar más memoria. En este caso que el objeto no es muy grande no tiene mucha importancia.
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;