Fracciones
Aritmética de fracciones en Julia
El paquete Fracciones
ha sido creado con propósitos didácticos, para mostrar algunas técnicas de programación con Julia. Para un uso "serio" de números racionales se recomienda usar el tipo Rational
del módulo Base
de Julia.
Este paquete define el tipo Fraccion
:
Fracciones.Fraccion
— TypeFraccion{T<:Integer}(num, den) <: Real
Fraccion(num, den)
Crea una Fraccion
con numerador num
y denominador den
. Si se especifica el parámetro T
, el numerador y el denominador se transforman a números enteros de ese tipo; si no se especifica, T
viene determinado por el más amplio de los tipos de num
y den
, que habrán de ser enteros.
Se puede usar la función fraccion
o la macro @fraccion
para crear fracciones a partir de otros conjuntos de valores.
Valores del numerador y denominador
Al crear una fracción, los valores del numerador y el denominador siempre se reducen a los de su forma canónica equivalente – p.ej. Fraccion(2,4)
se reduce a Fraccion(1,2)
.
Se permite la definición de las fracciones Fraccion(1, 0)
y Fraccion(-1, 0)
– equivalentes a ± infinito, pero no la de valor indefinido `Fraccion(0, 0).
Al ser el numerador y el denominador números de tipo Integer
, sus valores están sujetos a posibles errores por desbordamiento aritmético, si superan (en valor absoluto) el límite de typemax(T)
.
Fraccion{T<:Integer}(x)
Fraccion(x)
Transforma el número x
en una fracción equivalente.
Los números de este tipo se pueden crear también a partir de la división de otros dos números interpretables como enteros u otras fracciones, a través de la función fraccion
, o más convenientemente mediante la macro @fraccion
:
Fracciones.fraccion
— Functionfraccion(x, y)
Crea una fracción equivalente a dividir x
entre y
.
Los valores introducidos han de ser interpretables como números enteros o fracciones.
julia> fraccion(Fraccion(5,2), 3)
Fraccion(5, 6)
Fracciones.@fraccion
— Macro@fraccion x/y
Crea una fracción equivalente la expresión x/y
.
Si las partes de la expresión x
e y
contienen otras divisiones, estas se interpretan también como fracciones.
julia> @fraccion (1+(5/2))/3
Fraccion(7, 6)
El tipo Fraccion
se puede emplear en operaciones aritméticas básicas (suma, resta, multiplicación, división y potencia con números enteros). Además, están disponibles las siguientes funciones:
Fracciones.numerador
— Functionnumerador(x)
Extrae el numerador de x
.
Fracciones.denominador
— Functiondenominador(x)
Extrae el denominador de x
.
Fracciones.reciproco
— Functionreciproco(x)
Calcula la fracción recíproca de x
.