Class: Fraccion
- Inherits:
-
Object
- Object
- Fraccion
- Defined in:
- lib/racional.rb
Overview
clase para definir el objeto fraccion
Instance Attribute Summary collapse
-
#den ⇒ Object
nos permite el uso de los getter y setter sobre num y den.
-
#num ⇒ Object
nos permite el uso de los getter y setter sobre num y den.
Instance Method Summary collapse
-
#%(fraccion) ⇒ Object
Funcion para calcular el resto de dos fracciones.
-
#*(dato) ⇒ Object
Fucion para multiplicar dos fracciones.
-
#+(dato) ⇒ Object
Fucion para sumar dos fracciones o un escalar con una fraccion.
-
#-(dato) ⇒ Object
Fucion para restar dos fracciones o restar un escalar con una fraccion.
-
#-@ ⇒ Object
Fucion para calcular el inverso de una fraccion.
-
#/(fraccion) ⇒ Object
Funcion para dividir dos fracciones.
-
#<=>(fraccion) ⇒ Object
Funcion operador guerra de las galaxias.
-
#==(fraccion) ⇒ Object
Fucion para comparar dos fracciones.
-
#abs ⇒ Object
Fucion para transformar una fraccion a su valor absoluto.
- #coerce(dato) ⇒ Object
-
#initialize(numerador, denominador) ⇒ Fraccion
constructor
Funcion initialize.
-
#reciproco ⇒ Object
Funcion para obtener el reciproco de un fraccion.
-
#to_f ⇒ Object
Fucion para devolver un flotante.
-
#to_s ⇒ Object
Funcion para devolver un string.
Constructor Details
Instance Attribute Details
#den ⇒ Object
nos permite el uso de los getter y setter sobre num y den
11 12 13 |
# File 'lib/racional.rb', line 11 def den @den end |
#num ⇒ Object
nos permite el uso de los getter y setter sobre num y den
11 12 13 |
# File 'lib/racional.rb', line 11 def num @num end |
Instance Method Details
#%(fraccion) ⇒ Object
Funcion para calcular el resto de dos fracciones
90 91 92 |
# File 'lib/racional.rb', line 90 def %(fraccion) re = @num * fraccion.den % @den * fraccion.num end |
#*(dato) ⇒ Object
Fucion para multiplicar dos fracciones
72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/racional.rb', line 72 def *(dato) if (dato.class == Fraccion) n = dato.num * @num d = dato.den * @den Fraccion.new(n,d) else n = dato * @num d = @den Fraccion.new(n,d) end end |
#+(dato) ⇒ Object
Fucion para sumar dos fracciones o un escalar con una fraccion
48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/racional.rb', line 48 def +(dato) if (dato.class == Fraccion) n = dato.num * @den + dato.den * @num d = @den * dato.den Fraccion.new(n,d) else n = (dato * @den) + @num d = @den Fraccion.new(n,d) end end |
#-(dato) ⇒ Object
Fucion para restar dos fracciones o restar un escalar con una fraccion
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/racional.rb', line 60 def -(dato) if(dato.class == Fraccion) n = dato.den * @num - dato.num * @den d = @den * dato.den Fraccion.new(n,d) else n = (dato * @den) - @num d = @den Fraccion.new(n,d) end end |
#-@ ⇒ Object
Fucion para calcular el inverso de una fraccion
44 45 46 |
# File 'lib/racional.rb', line 44 def -@ Fraccion.new(-@num,@den) end |
#/(fraccion) ⇒ Object
Funcion para dividir dos fracciones
84 85 86 87 88 |
# File 'lib/racional.rb', line 84 def /(fraccion) #/ n = fraccion.den * @num d = fraccion.num * @den Fraccion.new(n,d) end |
#<=>(fraccion) ⇒ Object
Funcion operador guerra de las galaxias
94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/racional.rb', line 94 def <=>(fraccion) if (@num * fraccion.den < @den * fraccion.num) return -1 end if (@num * fraccion.den > @den * fraccion.num) return 1 end if(@num * fraccion.den == @den * fraccion.num) return 0 end end |
#==(fraccion) ⇒ Object
Fucion para comparar dos fracciones
32 33 34 |
# File 'lib/racional.rb', line 32 def ==(fraccion) return @num == fraccion.num && @den == fraccion.den end |
#abs ⇒ Object
Fucion para transformar una fraccion a su valor absoluto
36 37 38 |
# File 'lib/racional.rb', line 36 def abs Fraccion.new(@num.abs,@den.abs) end |
#coerce(dato) ⇒ Object
13 14 15 |
# File 'lib/racional.rb', line 13 def coerce (dato) [self, dato] end |
#reciproco ⇒ Object
Funcion para obtener el reciproco de un fraccion
40 41 42 |
# File 'lib/racional.rb', line 40 def reciproco Fraccion.new(@den,@num) end |
#to_f ⇒ Object
Fucion para devolver un flotante
28 29 30 |
# File 'lib/racional.rb', line 28 def to_f return @num/@den.to_f end |
#to_s ⇒ Object
Funcion para devolver un string
24 25 26 |
# File 'lib/racional.rb', line 24 def to_s return "#{@num}/#{@den}" end |