chezahuynya1/app/menu_load.py

75 lines
3.7 KiB
Python
Raw Normal View History

2024-10-14 22:56:34 +03:00
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('Неверный выбор, попробуйте снова.')