Class: Racional

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/racional.rb

Overview

  • metodo <=>

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(numerador, denominador) ⇒ Racional

Returns a new instance of Racional.



31
32
33
34
# File 'lib/racional.rb', line 31

def initialize(numerador, denominador)
  @numerador = numerador
  @denominador = denominador
end

Instance Attribute Details

#denominadorObject (readonly)

Returns the value of attribute denominador.



35
36
37
# File 'lib/racional.rb', line 35

def denominador
  @denominador
end

#numeradorObject (readonly)

Returns the value of attribute numerador.



35
36
37
# File 'lib/racional.rb', line 35

def numerador
  @numerador
end

Instance Method Details

#%(other) ⇒ Object

Calcular el resto



118
119
120
121
122
123
124
125
126
# File 'lib/racional.rb', line 118

def % (other)#####Calcular el resto
  nume = @numerador * other.denominador
               deno = @denominador * other.numerador
               mcd  = gcd(nume,deno)

  temp = ((nume/mcd) % (deno/mcd))
  

end

#*(other) ⇒ Object

Calcular el producto de un Racional



77
78
79
80
81
82
83
# File 'lib/racional.rb', line 77

def * (other)#Calcular el producto de un Racional
        nume = @numerador * other.numerador
        deno = @denominador * other.denominador
        mcd=gcd(nume,deno)
        temp = Racional.new(nume / mcd ,deno / mcd )

end

#+(other) ⇒ Object

Calcular la suma



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/racional.rb', line 42

def +(other)#Calcular la suma
        if (@denominador == other.denominador )
                nume=@numerador + other.numerador
                deno=@denominador
                mcd=gcd(nume,deno)
        else
                aux= @denominador * other.denominador
                nume = ((aux / @denominador ) * @numerador) + ((aux / other.denominador ) * other.numerador)
                deno = @denominador*other.denominador
                mcd=gcd(nume,deno)
        end
        
        temp = Racional.new(nume/mcd, deno/mcd)
end

#-(other) ⇒ Object

Calcular la resta de un Racional



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/racional.rb', line 58

def -(other)#Calcular la resta  de un Racional
        if (@denominador == other.denominador )
                nume=@numerador - other.numerador
                deno=@denominador
                mcd=gcd(nume,deno)
        
        else
                aux= @denominador * other.denominador
                nume = ((aux / @denominador ) * @numerador) - ((aux / other.denominador ) * other.numerador)
                deno=@denominador*other.denominador
                mcd=gcd(nume,deno)
        
        end
        
        
        temp = Racional.new(nume/mcd, deno/mcd)
end

#-@Object

Calcular el opuesto de la fraccion



134
135
136
# File 'lib/racional.rb', line 134

def -@#####Calcular el opuesto de la fraccion
  negado = Racional.new(-denominador, numerador)
end

#/(other) ⇒ Object

Calcular la division



86
87
88
89
90
91
92
93
# File 'lib/racional.rb', line 86

def / (other)

        nume = @numerador *other.denominador
        deno = @denominador * other.numerador
        mcd= gcd(nume,deno)
        temp = Racional.new(nume/mcd, deno/mcd )

end

#<=>(other) ⇒ Object



138
139
140
141
142
143
144
145
# File 'lib/racional.rb', line 138

def <=> (other)
    if other.instance_of? Racional
      return (numerador.to_f/denominador)<=>(other.numerador.to_f/other.denominador)
    else
      false
  end
       
end

#absObject

Calcular el absoluto de la fraccion



111
112
113
114
115
# File 'lib/racional.rb', line 111

def abs#####Calcular el absoluto de la fraccion
  absnum = numerador.abs
  absdenom = denominador.abs
  abs = Racional.new(absnum, absdenom)
end

#denomObject

Devolver el denominador



101
102
103
# File 'lib/racional.rb', line 101

def denom #####Devolver el denominador
  @denominador   
end

#numObject

Devolver el numerador



96
97
98
# File 'lib/racional.rb', line 96

def num#####Devolver el numerador
  @numerador
end

#reciprocalObject

Calcular el reciproco de la fraccion



129
130
131
# File 'lib/racional.rb', line 129

def reciprocal#####Calcular el reciproco de la fraccion
  Racional.new(@denominador,@numerador)
end

#to_fObject

Flotante



106
107
108
# File 'lib/racional.rb', line 106

def to_f#####Flotante
  flotante = numerador.to_f/denominador
end

#to_sObject

Método que devuelve un String



38
39
40
# File 'lib/racional.rb', line 38

def to_s#Método que devuelve un String
        "#{@numerador}/#{@denominador}"
end