diff --git a/src/main.py b/src/main.py new file mode 100644 index 0000000..b66b639 --- /dev/null +++ b/src/main.py @@ -0,0 +1,26 @@ +""" +Создать класс Matrix. +Атрибуты - data(содержит саму матрицу - список списков), n, m. +Определить конструктор(с параметрами(передача размерности: n, m +и диапазона случайных чисел: a, b), по-умолчанию +(матрица 5 на 5 где все элементы равны нулю), копирования) , +переопределить магический метод str для красивого вывода. +Описать функции, которые принимают на вход объект класса Matrix. + Функции позволяют искать максимальный элемент матрицы, минимальный, + сумму всех элементов. +Создать в файле main.py матрицу. +Воспользоваться всеми описанными функциями и методам +""" + + +from matrix_utils.matrix_classes import Matrix +from matrix_utils import matrix_funcs + + +if __name__ == "__main__": + matrix = Matrix(5, 5, 11, 33) + matrix.gen_default_matrix() + print(matrix) + print(matrix_funcs.find_max_matrix_element(matrix)) + print(matrix_funcs.find_min_matrix_element(matrix)) + print(matrix_funcs.find_sum_matrix_elements(matrix)) diff --git a/src/matrix_utils/__init__.py b/src/matrix_utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/matrix_utils/matrix_classes.py b/src/matrix_utils/matrix_classes.py new file mode 100644 index 0000000..51dc4de --- /dev/null +++ b/src/matrix_utils/matrix_classes.py @@ -0,0 +1,28 @@ +from random import randint + + +class Matrix: + def __init__(self, n: int, m: int, a: int, b: int) -> None: + self.n = n + self.m = m + self.a = a + self.b = b + self._data: list[list] = None + + @property + def data(self): + pass + + @data.setter + def data(self, data): + self._data = data + + def gen_default_matrix(self): + """Сгенерировать матрицу по умолчанию (нулевую)""" + self._data = [ + [randint(self.a, self.b) for _ in range(self.n)] + for _ in range(self.m)] + return self._data + + def __str__(self) -> str: + return f"your matrix is {self._data}" diff --git a/src/matrix_utils/matrix_funcs.py b/src/matrix_utils/matrix_funcs.py new file mode 100644 index 0000000..d6bc963 --- /dev/null +++ b/src/matrix_utils/matrix_funcs.py @@ -0,0 +1,17 @@ +from matrix_utils.matrix_classes import Matrix + + +def find_max_matrix_element(matrix: Matrix) -> int or float: + return max(map(max, matrix._data)) + + +def find_min_matrix_element(matrix: Matrix) -> int or float: + return min(map(min, matrix._data)) + + +def find_sum_matrix_elements(matrix: Matrix) -> int or float: + result = 0 + for elem in matrix._data: + for number in elem: + result += number + return result