3. Создать класс "Матрица". Класс должен иметь следующие поля: 1) двумерный массив вещественных чисел;
2) количество строк и столбцов в матрице.

Класс должен иметь следующие методы:
1) сложение с другой матрицей;
2) умножение на число;
3) вывод на печать;
4) умножение матриц - по желанию.

valnov24200105oxnmv8 valnov24200105oxnmv8    2   29.11.2020 17:36    127

Ответы
Rita210606 Rita210606  22.01.2024 20:13
Хорошо, давайте разберемся с поставленной задачей.

Сначала создадим класс "Матрица" и определим его поля - двумерный массив вещественных чисел и количество строк и столбцов в матрице. Для этого напишем следующий код на языке Python:

```python
class Matrix:
def __init__(self, matrix, rows, columns):
self.matrix = matrix
self.rows = rows
self.columns = columns
```

Далее необходимо добавить методы класса. Начнем с метода сложения матриц. Он должен принимать другую матрицу в качестве аргумента и возвращать новую матрицу, являющуюся результатом сложения двух матриц. Для этого напишем следующий код:

```python
def add(self, other):
if self.rows == other.rows and self.columns == other.columns:
result = []
for i in range(self.rows):
row = []
for j in range(self.columns):
row.append(self.matrix[i][j] + other.matrix[i][j])
result.append(row)
return Matrix(result, self.rows, self.columns)
else:
raise Exception("Размеры матриц не совпадают")
```

Теперь добавим метод умножения матрицы на число. Он должен принимать вещественное число в качестве аргумента и возвращать новую матрицу, в которой каждый элемент умножен на это число. Вот код этого метода:

```python
def multiply_by_scalar(self, scalar):
result = []
for i in range(self.rows):
row = []
for j in range(self.columns):
row.append(self.matrix[i][j] * scalar)
result.append(row)
return Matrix(result, self.rows, self.columns)
```

Теперь добавим метод вывода матрицы на печать. Просто выведем каждую строку матрицы на новой строке. Вот код метода:

```python
def print(self):
for row in self.matrix:
print(row)
```

При желании можно добавить и метод умножения матриц. Для этого воспользуемся известным алгоритмом умножения матриц. Вот код для этого метода:

```python
def multiply(self, other):
if self.columns == other.rows:
result = []
for i in range(self.rows):
row = []
for j in range(other.columns):
element = 0
for k in range(self.columns):
element += self.matrix[i][k] * other.matrix[k][j]
row.append(element)
result.append(row)
return Matrix(result, self.rows, other.columns)
else:
raise Exception("Неверные размеры матриц для умножения")
```

Вот и все! Теперь у нас есть полноценный класс "Матрица" с необходимыми методами и полями. Я надеюсь, что ответ понятен и полезен для школьника.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика