In Files

Parent

Class/Module Index [+]

Quicksearch

Fraccion

Clase para trabajar con fracciones.

Attributes

denominador[R]

Valor de numerador

numerador[R]

Valor de denominador

Public Class Methods

new(num, denomin) click to toggle source

Crea una fraccion con num como numerador y denomin como denominador

# File lib/fraccion.rb, line 9
def initialize(num, denomin)
        #atributo
        mcd=gcd(num,denomin)

                @numerador=num/mcd
                @denominador=denomin/mcd
end

Public Instance Methods

%(other) click to toggle source

Sobrecarga del operador de modulo, recibe como parametros dos francciones y devuelve el resto de la division de las mismas

# File lib/fraccion.rb, line 149
def % (other)
        aux=Fraccion.new(1,1)
        aux=self/other
        aux.numerador%aux.denominador
end
*(other) click to toggle source

Sobrecarga del operador de multiplicación, recibe como parametros dos francciones y devuelve una fraccion con el resultado de la multiplicación

# File lib/fraccion.rb, line 130
def * (other) 
        nume = @numerador * other.numerador
        deno = @denominador * other.denominador
        mcd=gcd(nume,deno)
        temp = Fraccion.new(nume / mcd ,deno / mcd )

end
+(other) click to toggle source

Sobrecarga del operador de suma, recibe como parametros dos fracciones y devuelve una fraccion con el resultado de la suma

# File lib/fraccion.rb, line 86
def +(other)
        if(other.instance_of?Fixnum)
                temp=other
                other=Fraccion.new(temp,1)
        end
        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 = Fraccion.new(nume/mcd, deno/mcd)
end
-(other) click to toggle source

Sobrecarga del operador de resta, recibe como parametros dos francciones y devuelve una fraccion con el resultado de la resta

# File lib/fraccion.rb, line 107
def -(other)
        if(other.instance_of?Fixnum)
                temp=other
                other=Fraccion.new(temp,1)
        end
        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 = Fraccion.new(nume/mcd, deno/mcd)
end
/(other) click to toggle source

Sobrecarga del operador de division, recibe como parametros dos francciones y devuelve una fraccion con el resultado de la division

# File lib/fraccion.rb, line 139
def / (other)

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

end
<(otro) click to toggle source

Sobrecarga de operadores de comparación devuelve true en caso de que el numero con el que se invoca es menor que el segundo y falso en caso contrario

# File lib/fraccion.rb, line 168
def < (otro)
        if (@numerador/@denominador < otro.numerador/otro.denominador)
                return true
        else
                return false
        end
        
end
<=(otro) click to toggle source

Sobrecarga de operadores de comparación devuelve true en caso de que el numero con el que se invoca es menor que el segundo y falso en caso contrario

# File lib/fraccion.rb, line 190
def <= (otro)
        if (@numerador/@denominador <= otro.numerador/otro.denominador)
                return true
        else
                return false
        end
        
end
==(otro) click to toggle source

Sobrecarga del operador de comparacion, devuelve true si son iguale y false en caso contrario

# File lib/fraccion.rb, line 49
def == (otro)
        if (@numerador==otro.numerador) && (@denominador == otro.denominador)
                return true
        else 
                return false
        end
end
>(otro) click to toggle source

Sobrecarga de operadores de comparación devuelve true en caso de que el numero con el que se invoca es mayor que el segundo y falso en caso contrario

# File lib/fraccion.rb, line 157
def > (otro)
        if (@numerador/@denominador > otro.numerador/otro.denominador)
                return true
        else
                return false
        end
        
end
>=(otro) click to toggle source

Sobrecarga de operadores de comparación devuelve true en caso de que el numero con el que se invoca es mayor o igual que el segundo y falso en caso contrario

# File lib/fraccion.rb, line 179
def >= (otro)
        if (@numerador/@denominador >= otro.numerador/otro.denominador)
                return true
        else
                return false
        end
        
end
abs() click to toggle source

Metodo para calcular el valor absoluto de la fraccion (numerador y denominador positivo)

# File lib/fraccion.rb, line 58
def abs
        if @numerador < 0
                @numerador = @numerador*-1
        end
        if @denominador < 0
                @denominador = @denominador*-1
        end
        return self
end
coerce(other) click to toggle source

Coerce. se usa para multiplicar numeros por fracciones

# File lib/fraccion.rb, line 200
def coerce(other)
        [self, other]
end
denom() click to toggle source

Retorna el valor del denominador

# File lib/fraccion.rb, line 33
def denom
        return @denominador
end
gcd(u, v) click to toggle source

Maximo comun divisor, funcion usada para simplificar las matrices.

# File lib/fraccion.rb, line 18
def gcd(u, v)
        u, v = u.abs, v.abs
        while v != 0
                u, v = v, u % v
        end
        u
end
mcm(a,b) click to toggle source

Calcula el Minimo comun multiplo, se usa para realizar la suma y la resta

# File lib/fraccion.rb, line 82
def mcm(a,b)
        (a*b)/gcd(a,b)
end
num() click to toggle source

Retorna el valor del numerador

# File lib/fraccion.rb, line 28
def num
        return @numerador
end
opuesto() click to toggle source

Metodo que devuelve la fraccion con el signo contrario al que tenia incialmente

# File lib/fraccion.rb, line 76
def opuesto
        @numerador = -1*@numerador
        return self
end
reciprocal() click to toggle source

Metodo que devuelve la matriz invertida de la forma que si al comienzo era a/b, devolveria b/a

# File lib/fraccion.rb, line 69
def reciprocal
        aux= @numerador 
        @numerador =  @denominador
        @denominador = aux
end
to_f() click to toggle source

Metodo que devuelve el numero decimal que representa la matriz

# File lib/fraccion.rb, line 43
def to_f 
        a=@numerador.to_f
        b=@denominador.to_f
        a/b
end
to_s() click to toggle source

Metodo que devuelve la fraccion en forma de string de la manera a/b

# File lib/fraccion.rb, line 38
def to_s
        "#{@numerador}/#{@denominador}"
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.