class Matriz
Public Class Methods
new(*col)
click to toggle source
# File lib/matrixfamily/matriz.rb, line 4 def initialize(*col) #col recoge en un array las filas de nuestra matriz. @matriz = Array.new() for i in col do if i.size == col.size then #nos aseguramos que es una matriz cuadrada. @matriz.push(i) else raise "La matriz debe ser cuadrada" end end @dimension = col.size #Guardamos en una variable de instancia la dimension de la matriz. end
Public Instance Methods
*(other)
click to toggle source
# File lib/matrixfamily/matriz.rb, line 100 def *(other) #Para la multiplicacion de matrices end
+(other)
click to toggle source
# File lib/matrixfamily/matriz.rb, line 92 def +(other) #Para la suma de matrices end
-(other)
click to toggle source
# File lib/matrixfamily/matriz.rb, line 96 def -(other) #Para la resta de matrices end
[](*ij)
click to toggle source
# File lib/matrixfamily/matriz.rb, line 88 def [] (*ij) #Recibe un numero de argumentos... end
maximo()
click to toggle source
# File lib/matrixfamily/matriz.rb, line 20 def maximo if @matriz.is_a? Array then max = @matriz[0][0] for i in 0...@dimension for j in 0...@dimension if @matriz[i][j] > max max = @matriz[i][j] end end end max elsif @matrix.is_a? Hash then max = @matrix[0][0] for i in @matrix.keys do for j in @matrix[i].keys do if @matrix[i][j] > max max = @matrix[i][j] end end end max end end
minimo()
click to toggle source
# File lib/matrixfamily/matriz.rb, line 54 def minimo if @matriz.is_a? Array then min = @matriz[0][0] for i in 0...@dimension for j in 0...@dimension if @matriz[i][j] < min min = @matriz[i][j] end end end min elsif @matrix.is_a? Hash then min = @matrix[@matrix.keys.first][@matrix[@matrix.keys.first].keys.first] for i in @matrix.keys do for j in @matrix[i].keys do if @matrix[i][j] < min && @matrix[i][j] != 0 then min = @matrix[i][j] end end end min end end