class Racional
Attributes
Gets y Sets de @num y @denom
Gets y Sets de @num y @denom
Public Class Methods
Se inicializa la fracción en su forma reducida haciendo uso de gcd
# File lib/racional.rb, line 9 def initialize(num, denom) raise TypeError, "El denominador debe ser mayor que cero" unless (denom != 0) div = gcd(num, denom) @num = num/div @denom = denom/div end
Public Instance Methods
calcula el resto dos fracciones con % y dar el resultado de forma reducida
# File lib/racional.rb, line 77 def %(o) Racional.new(num%denom, o.num%o.denom) end
multiplica dos fracciones con * y dar el resultado de forma reducida
# File lib/racional.rb, line 67 def *(o) Racional.new(num*o.num,denom*o.denom) end
suma dos fracciones con + y dar el resultado de forma reducida
# File lib/racional.rb, line 57 def +(o) Racional.new(num*o.denom + o.num*denom, denom*o.denom) end
resta dos fracciones con - y dar el resultado de forma reducida
# File lib/racional.rb, line 62 def -(o) Racional.new(num*o.denom - o.num*denom, denom*o.denom) end
Calcular el opuesto de una fraccion con -
# File lib/racional.rb, line 52 def -@ Racional.new(-denom, num) end
divide dos fracciones con / y dar el resultado de forma reducida
# File lib/racional.rb, line 72 def /(o) Racional.new(num*o.denom,denom*o.num) end
Comparación de mayor, mayor igual, menor, menor igual
# File lib/racional.rb, line 82 def <=>(o) return nil unless o.instance_of? Racional (num.to_f / denom) <=> (o.num.to_f / o.denom) end
comparar que dos fracciones son iguales
# File lib/racional.rb, line 28 def ==(o) if o.instance_of? Racional @num == o.num && @denom == o.denom else false end end
Calcular el valor absoluto de una fraccion con el metodo abs
# File lib/racional.rb, line 42 def abs Racional.new(num.abs, denom.abs) end
calcular el reciproco de una fraccion con el metodo reciprocal
# File lib/racional.rb, line 47 def reciprocal Racional.new(denom, num) end
Mostar la fraccion en formato flotante
# File lib/racional.rb, line 37 def to_f num.to_f/denom end
mostar por la consola la fraccion de la forma: a/b
# File lib/racional.rb, line 23 def to_s "#{num}/#{denom}" end