from app.utils.system import clear_console from app.zadachi.zadacha1 import zadacha1 from app.zadachi.zadacha2 import zadacha2 class pod_menu: def __init__(self): pass # Конструктор пока пустой, при необходимости можно добавить параметры def zadacha1_menu(): """Меню для задачи 1 с подкатегориями.""" clear_console() while True: print('\nЗадача 1:') print('1. линейно') print('2. квадратично') print('0. Назад') choice = input('Выберите подкатегорию: ') clear_console() z1 = zadacha1() # создаем объект для задачи 1 if choice == '1': z1.plot_lin_data() # Выполнить первую подзадачу #return # Вернуться в основное меню после выполнения elif choice == '2': z1.plot_sqr_data() # Выполнить вторую подзадачу #return # Вернуться в основное меню после выполнения elif choice == '0': break # Вернуться в основное меню else: print('Неверный выбор, попробуйте снова.') def zadacha2_menu(): """Меню для задачи 2 (расчет коэффициентов методом наименьших квадратов).""" clear_console() z1 = zadacha1() # Используем объект задачи 1 для генерации данных z2 = zadacha2() # Создаем объект для задачи 2 while True: print('\nЗадача 2:') print('1. Рассчитать коэффициенты b0 и b1 для линейной модели') print('2. Сделать прогноз по рассчитанным коэффициентам') print('0. Назад') choice = input('Выберите подкатегорию: ') clear_console() if choice == '1': # Генерация линейных данных с помощью функции из задачи 1 x_data, y_data = z1.create_lin_array() # Рассчет коэффициентов b0 и b1 методом наименьших квадратов b0, b1 = z2.calculate_coefficients(x_data, y_data) print(f'Рассчитанные коэффициенты:') print(f'b0 (свободный член) = {b0}') print(f'b1 (коэффициент наклона) = {b1}') elif choice == '2': # Пример предсказания на новых данных x_data, y_data = z1.create_lin_array() # Сначала генерируем данные b0, b1 = z2.calculate_coefficients(x_data, y_data) # Рассчитываем коэффициенты # Выполняем прогноз predicted_y = z2.predict(x_data, b0, b1) print(f'Предсказанные значения Y на основе рассчитанных коэффициентов:') print(predicted_y) elif choice == '0': break # Вернуться в основное меню else: print('Неверный выбор, попробуйте снова.')