class Racional

Attributes

denom[R]

Gets y Sets de @num y @denom

num[R]

Gets y Sets de @num y @denom

Public Class Methods

new(num, denom) click to toggle source

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

%(o) click to toggle source

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
*(o) click to toggle source

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
+(o) click to toggle source

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
-(o) click to toggle source

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
-@() click to toggle source

Calcular el opuesto de una fraccion con -

# File lib/racional.rb, line 52
def -@
  Racional.new(-denom, num)        
end
/(o) click to toggle source

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
<=>(o) click to toggle source

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
==(o) click to toggle source

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
abs() click to toggle source

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
reciprocal() click to toggle source

calcular el reciproco de una fraccion con el metodo reciprocal

# File lib/racional.rb, line 47
def reciprocal
  Racional.new(denom, num)
end
to_f() click to toggle source

Mostar la fraccion en formato flotante

# File lib/racional.rb, line 37
def to_f
  num.to_f/denom
end
to_s() click to toggle source

mostar por la consola la fraccion de la forma: a/b

# File lib/racional.rb, line 23
def to_s
  "#{num}/#{denom}"
end