Object
Clase para trabajar con fracciones.
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
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
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
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
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
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
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
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
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
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
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. se usa para multiplicar numeros por fracciones
# File lib/fraccion.rb, line 200 def coerce(other) [self, other] end
Retorna el valor del denominador
# File lib/fraccion.rb, line 33 def denom return @denominador end
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
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
Retorna el valor del numerador
# File lib/fraccion.rb, line 28 def num return @numerador end
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
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
Generated with the Darkfish Rdoc Generator 2.