Métodos públicos | Métodos privados | Atributos privados | Amigas

Referencia de la Clase ADH::rational

La clase rational implementa las operaciones aritméticas principales para números rationales. Más...

#include <rational.h>

Lista de todos los miembros.

Métodos públicos

 rational ()
 Constructor de vector.
 rational (long num)
 Constructor a partir de un valor entero.
 rational (long num, long den)
 Constructor a partir de un valor quedbrado.
 rational (const rational &o)
 Constructor de copia.
 ~rational ()
 Destructor.
void set (long num=0, long den=1)
 Cambia el valor del número rational a "n/d".
long num () const
 Copia del numerador.
long den () const
 Copia del denominador.
rationaloperator= (const rational &)
 Copia desde "o".
rationaloperator= (long)
 Asignación desde un "long".
rationalswap (rational &)
 Intercambia los valores de "*this" y "o".
rationaloperator+= (const rational &)
 Le suma a "*this" el valor de "otro".
rationaloperator-= (const rational &)
 Le resta a "*this" el valor de "otro".
rationaloperator/= (const rational &)
 Divide "*this" por el valor de "num".
rational operator- () const
 "-x".
rationalfromString (const char *nStr)
 Establece el valor de "*this" a partir de la hilera "nStr".

Métodos privados

void Simplify ()
 Simplifica el numerador y el denomidador.

Atributos privados

long m_num
 Numerador.
long m_den
 Denominador.

Amigas

rational operator+ (const rational &, const rational &)
 "x+y".
rational operator- (const rational &, const rational &)
 "x-y".
rational operator* (const rational &, const rational &)
 "x*y".
rational operator/ (const rational &, const rational &)
 "x/y".
bool operator== (const rational &, const rational &)
 Â¿ x == y ?
bool operator< (const rational &, const rational &)
 Â¿ x < y ?
bool operator!= (const rational &, const rational &)
 Â¿ x != y ?
bool operator<= (const rational &, const rational &)
 Â¿ x <= y ?
bool operator>= (const rational &, const rational &)
 Â¿ x >= y ?
bool operator> (const rational &, const rational &)
 Â¿ x > y ?
std::ostream & operator<< (std::ostream &, const rational &)
 Graba el valor de "r" en el flujo "COUT".
std::istream & operator>> (std::istream &, rational &)
 Lee del flujo de texto "CIN" el valor de "r".
double real (const rational &)
 Convertidor a punto flotante.
long integer (const rational &)
 Convertidor a punto fijo.
bool check_ok (const rational &r)
 Verifica la invariante de la clase rational.

Descripción detallada

La clase rational implementa las operaciones aritméticas principales para números rationales.

Definición en la línea 32 del archivo rational.h.


Documentación del constructor y destructor

ADH::rational::rational (  )  [inline]

Constructor de vector.

Definición en la línea 41 del archivo rational.h.

ADH::rational::rational ( long  num  )  [inline]

Constructor a partir de un valor entero.

Definición en la línea 42 del archivo rational.h.

ADH::rational::rational ( long  num,
long  den 
) [inline]

Constructor a partir de un valor quedbrado.

Definición en la línea 43 del archivo rational.h.

ADH::rational::rational ( const rational o  )  [inline]

Constructor de copia.

Definición en la línea 46 del archivo rational.h.

ADH::rational::~rational (  )  [inline]

Destructor.

Definición en la línea 47 del archivo rational.h.


Documentación de las funciones miembro

void ADH::rational::Simplify (  )  [private]

Simplifica el numerador y el denomidador.

  • Transforma el número rational de manera que el numerador y el denominador sean primos relativos, asegurando además que el denominador es siempre positivo.
  • Si (m_num==0) ==> (m_den==1).
  • Simplifica la fracción para que m_num y m_den sean números primos relativos ie, mcd(m_num,m_den) == 1.
  • Asegura que m_den sea un número positivo.
  • Restaura la invariante de la clase rational.

Definición en la línea 153 del archivo rational.cpp.

void ADH::rational::set ( long  num = 0,
long  den = 1 
) [inline]

Cambia el valor del número rational a "n/d".

Definición en la línea 99 del archivo rational.h.

long ADH::rational::num (  )  const [inline]

Copia del numerador.

Definición en la línea 51 del archivo rational.h.

long ADH::rational::den (  )  const [inline]

Copia del denominador.

Definición en la línea 52 del archivo rational.h.

rational & ADH::rational::operator= ( const rational o  )  [inline]

Copia desde "o".

Definición en la línea 112 del archivo rational.h.

rational & ADH::rational::operator= ( long  entero  )  [inline]

Asignación desde un "long".

Definición en la línea 144 del archivo rational.h.

rational & ADH::rational::swap ( rational o  )  [inline]

Intercambia los valores de "*this" y "o".

Complejidad:
O( 1 )
Devuelve:
*this
Ver también:
http://www.di-mare.com/adolfo/binder/c04.htm#sc08

Definición en la línea 128 del archivo rational.h.

rational & ADH::rational::operator+= ( const rational otro  ) 

Le suma a "*this" el valor de "otro".

Definición en la línea 169 del archivo rational.cpp.

rational & ADH::rational::operator-= ( const rational otro  ) 

Le resta a "*this" el valor de "otro".

Definición en la línea 179 del archivo rational.cpp.

rational & ADH::rational::operator/= ( const rational num  )  [inline]

Divide "*this" por el valor de "num".

Precondición:
  • (num != 0)

Definición en la línea 167 del archivo rational.h.

rational ADH::rational::operator- (  )  const [inline]

"-x".

  • Menos unario
  • Calcula y retorna el valor "-x"

Definición en la línea 177 del archivo rational.h.

rational & ADH::rational::fromString ( const char *  nStr  ) 

Establece el valor de "*this" a partir de la hilera "nStr".

Precondición:
"nStr" debe estar escrita en el formato "[num/den]".

Definición en la línea 200 del archivo rational.cpp.


Documentación de las funciones relacionadas y clases amigas

rational operator+ ( const rational x,
const rational y 
) [friend]

"x+y".

  • Calcula y retorna la suma "x+y".

Definición en la línea 350 del archivo rational.cpp.

rational operator- ( const rational x,
const rational y 
) [friend]

"x-y".

  • Calcula y retorna la resta "x-y".

Definición en la línea 360 del archivo rational.cpp.

rational operator* ( const rational x,
const rational y 
) [friend]

"x*y".

  • Calcula y retorna la multiplicación "x*y".

Definición en la línea 371 del archivo rational.cpp.

rational operator/ ( const rational x,
const rational y 
) [friend]

"x/y".

  • Calcula y retorna la división "x/y".
    Precondición:
    y != 0

Definición en la línea 383 del archivo rational.cpp.

bool operator== ( const rational x,
const rational y 
) [friend]

¿ x == y ?

Definición en la línea 184 del archivo rational.h.

bool operator< ( const rational x,
const rational y 
) [friend]

¿ x < y ?

Definición en la línea 195 del archivo rational.h.

bool operator!= ( const rational x,
const rational y 
) [friend]

¿ x != y ?

Definición en la línea 221 del archivo rational.h.

bool operator<= ( const rational x,
const rational y 
) [friend]

¿ x <= y ?

Definición en la línea 226 del archivo rational.h.

bool operator>= ( const rational x,
const rational y 
) [friend]

¿ x >= y ?

Definición en la línea 231 del archivo rational.h.

bool operator> ( const rational x,
const rational y 
) [friend]

¿ x > y ?

Definición en la línea 216 del archivo rational.h.

std::ostream& operator<< ( std::ostream &  COUT,
const rational r 
) [friend]

Graba el valor de "r" en el flujo "COUT".

  • Graba el valor en el formato [num/den].
  • En particular, este es el operador que se invoca cuando se usa, por ejemplo, este tipo de instrucción:
              cout << r << q;
    

Definición en la línea 263 del archivo rational.cpp.

std::istream& operator>> ( std::istream &  CIN,
rational r 
) [friend]

Lee del flujo de texto "CIN" el valor de "r".

Precondición:
El número rational debe haber sido escrito usando el formato "[r/den]", aunque es permisible usar algunos blancos.
  • Se termina de leer el valor sólo cuando encuentra "]".
  • [ -+-+-+-+- 4 / -- -+ -- 32 ] se lee como [1/8]

Definición en la línea 280 del archivo rational.cpp.

double real ( const rational num  )  [friend]

Convertidor a punto flotante.

Definición en la línea 236 del archivo rational.h.

long integer ( const rational num  )  [friend]

Convertidor a punto fijo.

Definición en la línea 241 del archivo rational.h.

bool check_ok ( const rational r  )  [friend]

Verifica la invariante de la clase rational.

Rep Modelo de la clase:
    +---+
    | 3 | <==  m_num == numerador del número racional
    +---+
    |134| <==  m_den == denominador del número racional
    +---+
Comentarios:
Libera al programador de implementar el método Ok()

  • Invariante: ningún objeto puede estar almacenado en la posición nula.
  • Invariante: el denominador debe ser un número positivo.
  • Invariante: el cero debe representarse con denominador igual a "1".
  • Invariante: el numerador y el denominador deben ser primos relativos.

Definición en la línea 31 del archivo rational.cpp.


Documentación de los datos miembro

long ADH::rational::m_num [private]

Numerador.

Definición en la línea 34 del archivo rational.h.

long ADH::rational::m_den [private]

Denominador.

Definición en la línea 35 del archivo rational.h.


La documentación para esta clase fue generada a partir de los siguientes ficheros:
 Todo Clases Namespaces Archivos Funciones Variables Amigas 'defines'