chezahuynya1/app/menu_load.py

75 lines
3.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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('Неверный выбор, попробуйте снова.')