[Python] Como posso adicionar símbolos matemáticos nas soluções de raizes da equação do...

Discussão em 'Python' iniciado por Stack, Outubro 26, 2024.

  1. Stack

    Stack Membro Participativo

    Como posso adicionar símbolos matemáticos nas soluções de raizes da equação de segundo grau através da fórmula de Baskhara?

    eu tenho:

    (https://i.sstatic.net/9nbVvSFK.jpg)

    Pretendo:

    (https://i.sstatic.net/A2H9jan8.jpg)

    código:

    import customtkinter as ctk
    from sympy import symbols, Eq, solve, Rational, pretty

    # Configurar as variáveis do sympy
    x = symbols('x')

    # Função para calcular as raízes e exibi-las na interface gráfica
    def calcular_raizes():
    try:
    # Verificar se os valores são válidos floats
    a = float(entry_a.get())
    b = float(entry_b.get())
    c = float(entry_c.get())
    except ValueError:
    resultado_label.configure(text="Por favor, insira valores válidos para a, b e c.", text_color="red")
    return

    try:
    # Convertendo para Rational
    a = Rational(a)
    b = Rational(b)
    c = Rational(c)

    # Definir a equação
    equacao = Eq(a*x**2 + b*x + c, 0)

    # Resolver a equação
    solucoes = solve(equacao, x)

    # Construir a string de resultado com formatação apropriada
    if len(solucoes) == 1:
    resultado = f"x₁ = {pretty(solucoes[0])}\nx₂ = {pretty(solucoes[0])}"
    else:
    resultado = f"x₁ = {pretty(solucoes[0])}\n\nx₂ = {pretty(solucoes[1])}"

    # Atualizar a mensagem de resultado na janela principal
    resultado_label.configure(text=f"As raízes da equação são:\n\n{resultado}", text_color="white")
    except Exception as e:
    resultado_label.configure(text=f"Erro ao calcular as raízes: {str(e)}", text_color="red")

    # Função para centralizar a janela na tela
    def centralizar_janela(app, largura, altura):
    largura_tela = app.winfo_screenwidth()
    altura_tela = app.winfo_screenheight()
    x_centro = (largura_tela // 2) - (largura // 2)
    y_centro = (altura_tela // 2) - (altura // 2)
    app.geometry(f'{largura}x{altura}+{x_centro}+{y_centro}')

    # Configurar a interface gráfica customtkinter
    app = ctk.CTk()
    app.title("Cálculo de raízes")
    ctk.set_appearance_mode("dark")

    # Centralizar a janela na tela
    app.update_idletasks() # Certificar que as dimensões estão corretas
    centralizar_janela(app, 500, 500)

    # Impedir redimensionamento
    app.resizable(False, False)

    # Centralizar elementos
    frame_titulo = ctk.CTkFrame(app)
    frame_titulo.pack(pady=20)

    titulo = ctk.CTkLabel(frame_titulo, text="Cálculo das raízes quadradas", text_color="white", font=("Arial", 18))
    titulo.pack()

    subtitulo = ctk.CTkLabel(frame_titulo, text="ax² + bx + c", text_color="white", font=("Arial", 14))
    subtitulo.pack()

    frame = ctk.CTkFrame(app)
    frame.pack(pady=20)

    label_config = {'text_color': 'white', 'font': ('Arial', 14)}
    entry_config = {'font': ('Arial', 12)}

    ctk.CTkLabel(frame, text="a:", **label_config).grid(row=0, column=0, pady=10)
    entry_a = ctk.CTkEntry(frame, width=80, justify='center', **entry_config)
    entry_a.grid(row=1, column=0, pady=10)

    ctk.CTkLabel(frame, text="b:", **label_config).grid(row=0, column=1, pady=10)
    entry_b = ctk.CTkEntry(frame, width=80, justify='center', **entry_config)
    entry_b.grid(row=1, column=1, pady=10)

    ctk.CTkLabel(frame, text="c:", **label_config).grid(row=0, column=2, pady=10)
    entry_c = ctk.CTkEntry(frame, width=80, justify='center', **entry_config)
    entry_c.grid(row=1, column=2, pady=10)

    # Botão para calcular as raízes
    btn = ctk.CTkButton(app, text="Calcular Raízes", corner_radius=32, fg_color="transparent",
    hover_color=None, border_color="#FFCC70", border_width=2, command=calcular_raizes)
    btn.pack(pady=20)

    # Label para exibir os resultados
    resultado_label = ctk.CTkLabel(app, text="", text_color="white", font=("Arial", 16))
    resultado_label.pack(pady=20)

    # Iniciar o loop da interface gráfica
    app.mainloop()

    Continue reading...

Compartilhe esta Página