Не, ребят, это совсем грустно. Я думал здесь профи сидят)) ахахха
Короче, вот мое решение.
| Код | class Matrix @data
def initialize(m00=0, m01=0, m10=0, m11=0) @data = [[m00, m01], [m10, m11]] end public def out() puts "|"+@data[0][0].to_s+" "+@data[0][1].to_s+"|" puts "|"+@data[1][0].to_s+" "+@data[1][1].to_s+"|" puts "" end # СЛОЖЕНИЕ def +(m) for i in 0..1 for j in 0..1 @data[i][j] = @data[i][j] + m.data[i][j] end end self end # ВЫЧИТАНИЕ def -(m) for i in 0..1 for j in 0..1 @data[i][j] = @data[i][j] - m.data[i][j] end end self end # УМНОЖЕНИЕ def *(m) result = Matrix.new() for i in 0..1 for j in 0..1 for k in 0..1 result.data[i][j] = result.data[i][j] + @data[i][k] * m.data[k][j] end end end result #self end # ОПРЕДЕЛИТЕЛЬ def opredel() puts @data[0][0] * @data[1][1] - @data[0][1] * @data[1][0] end # ТРАНСПОНИРОВАНИЕ def transport() puts "|"+@data[0][0].to_s + " " + @data[1][0].to_s + "|" # строки puts "|"+@data[0][1].to_s + " " + @data[1][1].to_s + "|" end # ВОЗВЕДЕНИЕ В СТЕПЕНЬ def ^(m) result = Matrix.new(1, 1, 1, 1) for k in 1..m result = result * self end
result end # ОБРАТНАЯ МАТРИЦА def obrat() determ = @data[0][0] * @data[1][1] - @data[0][1] * @data[1][0] a = @data[0][0] b = - @data[0][1] c = - @data[1][0] d = @data[1][1] puts "|"+d.to_s + " " + b.to_s + "|" # строки puts "|"+" |" puts "|"+c.to_s + " " + a.to_s + "|" puts "* on #{determ}" end attr_reader :data attr_writer :data end
m1 = Matrix.new(1,2,3,4) m2 = Matrix.new(1,2,3,4)
puts "matrix 01" puts " #{m1.out} "
puts "V stepen" (m1^2).out
#m1 = Matrix.new(1, 2, 3, 4) #m2 = Matrix.new(1 ,2 ,3 ,4)
# Сложение #puts "matrix 01" #puts " #{m1.out} "
#puts "matrix 02" #puts " #{m2.out} "
#puts "Addition" #(m1 + m2).out
# Вычитание #m3 = Matrix.new(1, 2, 3, 4) #m4 = Matrix.new(1 ,2 ,3 ,4)
#puts "matrix 03" #puts " #{m3.out} "
#puts "matrix 04" #puts " #{m4.out} "
#puts "Debuction" #(m3-m4).out
# Умножение #m5 = Matrix.new(1, 2, 3, 4) #m6 = Matrix.new(1 ,2 ,3 ,4)
#puts "matrix 05" #puts " #{m5.out} "
#puts "matrix 06" #puts " #{m6.out} "
#puts "Multiplication" #(m5*m6).out
# Определитель #m7 = Matrix.new(1, 2, 3, 4)
#puts "matrix 07" #puts " #{m7.out} "
#puts "Opredelitel" #m7.opredel()
#m8 = Matrix.new(1, 2, 3, 4)
# Транспонирование #puts "matrix 08" #puts " #{m8.out} "
#puts "Transponirovanie" #m8.transport()
# Обратная матрица #m9 = Matrix.new(1, 2, 3, 4)
#puts "matrix 09" #puts " #{m9.out} "
#puts "Obrashenie" #m9.obrat()
gets
|
|