class Matrizdispersascp::MatrizDispersa
Attributes
columnas[R]
filas[R]
matriz[R]
Public Class Methods
new(matriz)
click to toggle source
# File lib/matrizdispersascp.rb, line 31 def initialize(matriz) @matriz = matriz @filas = matriz.size @columnas = matriz.size end
Public Instance Methods
+(o)
click to toggle source
Suma de matrices
# File lib/matrizdispersascp.rb, line 84 def +(o) suma = Array.new(matriz.size - 1) for i in 0...matriz.size if (matriz[i] != nil or o.matriz[i] != nil) suma[i] = Hash.new() case true when (matriz[i] != nil and o.matriz[i] != nil) suma[i] = matriz[i] o.matriz[i].each do |key, value| if suma[i].has_key?(key) suma[i][key] = suma[i][key] + o.matriz[i][key] else suma[i][key] = o.matriz[i][key] end end when matriz[i] != nil suma[i] = matriz[i] when o.matriz[i] != nil suma[i] = o.matriz[i] end end end MatrizDispersa.new(suma) end
-(o)
click to toggle source
Resta de matrices
# File lib/matrizdispersascp.rb, line 110 def -(o) resta = Array.new(matriz.size - 1) for i in 0...matriz.size if (matriz[i] != nil or o.matriz[i] != nil) resta[i] = Hash.new() case true when (matriz[i] != nil and o.matriz[i] != nil) resta[i] = matriz[i] o.matriz[i].each do |key, value| if resta[i].has_key?(key) resta[i][key] = resta[i][key] - o.matriz[i][key] else resta[i][key] = o.matriz[i][key] * -1 end end when matriz[i] != nil resta[i] = matriz[i] when o.matriz[i] != nil resta[i] = o.matriz[i] resta[i].each do |key, value| resta[i][key] = resta[i][key] * -1 end end end end MatrizDispersa.new(resta) end
max()
click to toggle source
Meodo que calcula el maximo de una matriz dispersa
# File lib/matrizdispersascp.rb, line 139 def max maximo = 0.to_f for i in 0...matriz.size if matriz[i] != nil matriz[i].each do |key, value| if matriz[i][key].to_f > maximo maximo = matriz[i][key].to_f end end end end maximo end
min()
click to toggle source
Metodo que calcula el minimo de una mariz dispersa
# File lib/matrizdispersascp.rb, line 154 def min minimo = 0.to_f for i in 0...matriz.size if matriz[i] != nil matriz[i].each do |key, value| if matriz[i][key].to_f < minimo minimo = matriz[i][key].to_f end end end end minimo end
to_f()
click to toggle source
# File lib/matrizdispersascp.rb, line 69 def to_f flotante = Array.new(matriz.size - 1) for i in 0...matriz.size # Hay datos en la fila if matriz[i] != nil flotante[i] = Hash.new() matriz[i].each do |key, value| flotante[i][key] = matriz[i][key].to_f end end end MatrizDispersa.new(flotante) end
to_s()
click to toggle source
# File lib/matrizdispersascp.rb, line 38 def to_s fil = 0 st = "{" while fil < filas col = 0 st += "{" while col < columnas if @matriz[fil] != nil # Hay datos en la fila if @matriz[fil].has_key?(col) st += "#{@matriz[fil][col].to_s}" else st += "0" end else st += "0" end if (col + 1) < columnas then st += ", " end col += 1 end if (fil + 1) < filas then st += "}" end st += "}" fil += 1 end st += "}" st end