class LppT04Matrix::MatrizDensa
Attributes
elemento[RW]
Vector en el que se almacena el valor de los elementos de la matriz.
Public Class Methods
new(filas, columnas, elemento)
click to toggle source
Contructor de la clase MatrizDensa
Calls superclass method
LppT04Matrix::Matriz::new
# File lib/lpp_t_04_matrix.rb, line 48 def initialize (filas, columnas, elemento) # Contructor de la clase MatrizDensa super(filas, columnas) # Vector en el que se almacena el valor de los elementos de la matriz. @elemento = elemento end
Public Instance Methods
*(other)
click to toggle source
Multiplica dos Fracciones se le pasa un tipo fraccion.
# File lib/lpp_t_04_matrix.rb, line 105 def *(other) # Multiplica dos Fracciones se le pasa un tipo fraccion. raise ArgumentError, "La longitud de las matrices no coincide." unless @columnas == other.filas elemento = Array.new acumulado = 0 @filas.times do |i| elemento_fila = Array.new other.columnas.times do |j| acumulado = 0 @columnas.times do |k| suma = @elemento[i][k] * other.indice(k,j) acumulado = suma + acumulado end elemento_fila << acumulado end elemento << elemento_fila end MatrizDensa.new(@filas, other.columnas, elemento) end
+(other)
click to toggle source
Suma dos Fracciones se le pasa un tipo fraccion.
# File lib/lpp_t_04_matrix.rb, line 77 def +(other) # Suma dos Fracciones se le pasa un tipo fraccion. raise ArgumentError, "La longitud de las matrices no coincide." unless @filas == other.filas && @columnas == other.columnas elemento = Array.new @filas.times do |i| elemento_fila = Array.new @columnas.times do |j| elemento_fila << @elemento[i][j].+(other.elemento[i][j]) end elemento << elemento_fila end MatrizDensa.new(@filas, @columnas,elemento) end
-(other)
click to toggle source
Resta dos Fracciones se le pasa un tipo fraccion.
# File lib/lpp_t_04_matrix.rb, line 91 def -(other) # Resta dos Fracciones se le pasa un tipo fraccion. raise ArgumentError, "La longitud de las matrices no coincide." unless @filas == other.filas && @columnas == other.columnas elemento = Array.new @filas.times do |i| elemento_fila = Array.new @columnas.times do |j| elemento_fila << @elemento[i][j] - other.elemento[i][j] end elemento << elemento_fila end MatrizDensa.new(@filas, @columnas,elemento) end
[](i)
click to toggle source
Metodo de acceso a la matriz
# File lib/lpp_t_04_matrix.rb, line 55 def [](i) # Metodo de acceso a la matriz @elemento[i] end
indice(i,j)
click to toggle source
Devuelve el valor del indice i j
# File lib/lpp_t_04_matrix.rb, line 60 def indice(i,j) # Devuelve el valor del indice i j @elemento[i][j] end
maximo()
click to toggle source
Devuelve el valor maximo
# File lib/lpp_t_04_matrix.rb, line 138 def maximo # Devuelve el valor maximo aux = @elemento[0][0] @columnas.times do |i| @filas.times do |j| aux = @elemento[i][j] if @elemento[i][j] > aux end end aux end
minimo()
click to toggle source
Devuelve el valor minimo.
# File lib/lpp_t_04_matrix.rb, line 149 def minimo # Devuelve el valor minimo. aux = @elemento[0][0] @columnas.times do |i| @filas.times do |j| aux = @elemento[i][j] if @elemento[i][j] < aux end end aux end
to_s()
click to toggle source
Convierte la fraccion a una cadena
# File lib/lpp_t_04_matrix.rb, line 65 def to_s # Convierte la fraccion a una cadena imprimir = "" @filas.times do |i| @columnas.times do |j| imprimir << "#{elemento[i][j]} " end imprimir << "\n" end imprimir end
traspuesta()
click to toggle source
Devuelve la trasuesta de una Matriz
# File lib/lpp_t_04_matrix.rb, line 125 def traspuesta # Devuelve la trasuesta de una Matriz elemento = Array.new 0.upto(@columnas - 1) do |i| elemento_fila = Array.new 0.upto(@filas - 1) do |j| elemento_fila << @elemento[j][i] end elemento << elemento_fila end MatrizDensa.new(@columnas, @filas, elemento) end