3. Напишите класс Matrix . В классе должны быть следующие переменные: 1) массив двухмерный элементов вещественного

  • 57
3. Напишите класс "Matrix". В классе должны быть следующие переменные: 1) массив двухмерный элементов вещественного типа; 2) количество строк и столбцов в матрице. В классе также должны быть определены следующие функции: 1) сложение с другой матрицей; 2) умножение на число; 3) вывод на экран; 4) умножение матриц - при необходимости
Добрый_Дракон_9988
48
Хорошо, вот решение задачи:

python
class Matrix:
def __init__(self, rows, columns):
self.rows = rows
self.columns = columns
self.matrix = [[0] * columns for _ in range(rows)]

def add(self, other):
if self.rows != other.rows or self.columns != other.columns:
return None

result = Matrix(self.rows, self.columns)
for i in range(self.rows):
for j in range(self.columns):
result.matrix[i][j] = self.matrix[i][j] + other.matrix[i][j]
return result

def multiply(self, scalar):
result = Matrix(self.rows, self.columns)
for i in range(self.rows):
for j in range(self.columns):
result.matrix[i][j] = self.matrix[i][j] * scalar
return result

def multiply_matrix(self, other):
if self.columns != other.rows:
return None

result = Matrix(self.rows, other.columns)
for i in range(self.rows):
for j in range(other.columns):
for k in range(self.columns):
result.matrix[i][j] += self.matrix[i][k] * other.matrix[k][j]
return result

def display(self):
for row in self.matrix:
for element in row:
print(element, end=" ")
print()


# Пример использования класса "Matrix"
# Создаем матрицу A размером 2x2 и задаем ее элементы
A = Matrix(2, 2)
A.matrix = [[1, 2],
[3, 4]]

# Создаем матрицу B размером 2x2 и задаем ее элементы
B = Matrix(2, 2)
B.matrix = [[5, 6],
[7, 8]]

# Складываем матрицы A и B
C = A.add(B)
print("Результат сложения:")
C.display()

# Умножаем матрицу A на число 2
D = A.multiply(2)
print("Результат умножения на число:")
D.display()

# Умножаем матрицы A и B
E = A.multiply_matrix(B)
print("Результат умножения матриц:")
E.display()


Это решение задачи представляет класс "Matrix", который имеет методы для сложения матриц, умножения матриц на число, умножения двух матриц и вывода матрицы на экран.

В методе `__init__`, при создании объекта класса, задаются количество строк и столбцов матрицы, а также создается двумерный массив `matrix` с размерами, соответствующими заданным значениям строк и столбцов. Каждый элемент матрицы инициализируется значением 0.

Метод `add` выполняет сложение матрицы с другой матрицей. Перед сложением проверяется, что количество строк и столбцов обоих матриц совпадает. Затем создается новая матрица `result` с размерами такими же, как у исходных матриц, и каждый элемент новой матрицы вычисляется как сумма соответствующих элементов исходных матриц.

Метод `multiply` выполняет умножение матрицы на число (скалярное умножение). Создается новая матрица `result` с размерами такими же, как у исходной матрицы, и каждый элемент новой матрицы вычисляется как произведение соответствующего элемента исходной матрицы на заданное число.

Метод `multiply_matrix` выполняет умножение двух матриц. Перед умножением проверяется, что количество столбцов первой матрицы равно количеству строк второй матрицы. Затем создается новая матрица `result` с размерами `(количество строк первой матрицы) x (количество столбцов второй матрицы)`, и каждый элемент новой матрицы вычисляется как сумма произведений соответствующих элементов матриц первой и второй.

Метод `display` выводит элементы матрицы на экран. Каждая строка матрицы выводится на отдельной строке консоли, элементы разделены пробелом.

В примере использования класса `Matrix` создаются две матрицы `A` и `B`, задаются их элементы, выполняются операции сложения, умножения на число и умножения матриц, и результаты выводятся на экран.