class LppT04Matrix::MatrizDensa

Clase Matriz Densa hereda de Matriz

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