Загрузка данных


import random

class ArrayGenerator:
    @staticmethod
    def generate():
        length = random.choice([5, 7, 9, 11])
        return [random.randint(1, 100) for _ in range(length)]

class ArrayCalculator:
    @staticmethod
    def sum_arr(arr):
        return sum(arr)
    
    @staticmethod
    def multiply_arr(arr):
        res = 1
        for x in arr:
            res *= x
        return res

class ArrayModifier:
    @staticmethod
    def replace_half_with_zeros(arr):
        new = arr.copy()
        half = (len(new) + 1) // 2
        for i in range(half):
            new[i] = 0
        return new

class ArrayProcessor:
    def __init__(self):
        self.array = None
    
    def generate(self):
        self.array = ArrayGenerator.generate()
        return self.array
    
    def get_sum(self):
        return ArrayCalculator.sum_arr(self.array)
    
    def get_product(self):
        return ArrayCalculator.multiply_arr(self.array)
    
    def get_replaced(self):
        return ArrayModifier.replace_half_with_zeros(self.array)
    
    def menu(self):
        self.generate()
        print(f"Массив: {self.array}")
        print(f"Сумма: {self.get_sum()}")
        print(f"Произведение: {self.get_product()}")
        print(f"После замены: {self.get_replaced()}")