Clases | Funciones

Referencia del Namespace ADH

ADH son las siglas de adolfo@di-mare.com. Más...

Clases

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

Funciones

 USING_namespace (ADH)
long mcd (long x, long y)
 Calcula el Máximo Común Divisor de los números "x" y "y".
long gcd (long x, long y)
 Sinónimo de mcd(x,y) [ inline ]
rationaloperator*= (rational &a, const rational &b)
 Multiplica "*a" por "b".
bool operator== (const rational &x, const rational &y)
 Â¿ x == y ?
bool operator< (const rational &x, const rational &y)
 Â¿ x < y ?
bool operator> (const rational &x, const rational &y)
 Â¿ x > y ?
bool operator!= (const rational &x, const rational &y)
 Â¿ x != y ?
bool operator<= (const rational &x, const rational &y)
 Â¿ x <= y ?
bool operator>= (const rational &x, const rational &y)
 Â¿ x >= y ?
double real (const rational &num)
 Convertidor a punto flotante.
long integer (const rational &num)
 Convertidor a punto fijo.
bool check_ok_externo (const rational &r)
bool check_ok (const rational &r)
 Verifica la invariante de la clase rational.
bool check_ok_no_Rep (const rational &r)
 Verifica la invariante de la clase rational.
std::ostream & operator<< (std::ostream &COUT, const rational &r)
 Graba el valor de "r" en el flujo "COUT".
std::istream & operator>> (std::istream &CIN, rational &r)
 Lee del flujo de texto "CIN" el valor de "r".
rational operator+ (const rational &x, const rational &y)
 "x+y".
rational operator- (const rational &x, const rational &y)
 "x-y".
rational operator* (const rational &x, const rational &y)
 "x*y".
rational operator/ (const rational &x, const rational &y)
 "x/y".

Descripción detallada

ADH son las siglas de adolfo@di-mare.com.


Documentación de las funciones

ADH::USING_namespace ( ADH   ) 
long ADH::mcd ( long  x,
long  y 
)

Calcula el Máximo Común Divisor de los números "x" y "y".

  • mcd(x,y) >= 1 siempre.
  • MCD <==> GCD: Greatest Common Divisor .
Precondición:
(y != 0)
Comentarios:
Se usa el algoritmo de Euclides para hacer el cálculo.
Ejemplo:
    2*3*5 == mcd( 2*2*2*2 * 3*3 * 5*5, 2*3*5 )
       30 == mcd( -3600, -30 )

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

long ADH::gcd ( long  x,
long  y 
) [inline]

Sinónimo de mcd(x,y) [ inline ]

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

rational & ADH::operator*= ( rational &  a,
const rational &  b 
)

Multiplica "*a" por "b".

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

bool ADH::operator== ( const rational &  x,
const rational &  y 
) [inline]

¿ x == y ?

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

bool ADH::operator< ( const rational &  x,
const rational &  y 
) [inline]

¿ x < y ?

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

bool ADH::operator> ( const rational &  x,
const rational &  y 
) [inline]

¿ x > y ?

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

bool ADH::operator!= ( const rational &  x,
const rational &  y 
) [inline]

¿ x != y ?

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

bool ADH::operator<= ( const rational &  x,
const rational &  y 
) [inline]

¿ x <= y ?

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

bool ADH::operator>= ( const rational &  x,
const rational &  y 
) [inline]

¿ x >= y ?

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

double ADH::real ( const rational &  num  )  [inline]

Convertidor a punto flotante.

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

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

Convertidor a punto fijo.

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

bool ADH::check_ok_externo ( const rational &  r  ) 
bool ADH::check_ok ( const rational &  r  ) 

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.

bool ADH::check_ok_no_Rep ( const rational &  r  ) 

Verifica la invariante de la clase rational.

Comentarios:
Esta implementación nos se le mete al Rep (casi siempre no es posible implementar una función como ésta).
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 75 del archivo rational.cpp.

std::ostream& ADH::operator<< ( std::ostream &  COUT,
const rational &  r 
)

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& ADH::operator>> ( std::istream &  CIN,
rational &  r 
)

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.

rational ADH::operator+ ( const rational &  x,
const rational &  y 
)

"x+y".

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

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

rational ADH::operator- ( const rational &  x,
const rational &  y 
)

"x-y".

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

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

rational ADH::operator* ( const rational &  x,
const rational &  y 
)

"x*y".

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

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

rational ADH::operator/ ( const rational &  x,
const rational &  y 
)

"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.

 Todo Clases Namespaces Archivos Funciones Variables Amigas 'defines'