Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- """
- Created on Sun Jun 4 00:20:01 2023
- Resuelve una ecuación cuadrática de la forma ax^2 + bx + c = 0.
- Usa tkinter para generar una interfaz gráfica
- @alpha
- """
- import tkinter as tk
- from math import sqrt
- class Ecuaciones2GradoGUI:
- def __init__(self):
- """
- Resuelve una ecuación cuadrática de la forma ax^2 + bx + c = 0.
- Args:
- coeficiente_a (float): Coeficiente cuadrático.
- coeficiente_b (float): Coeficiente lineal.
- coeficiente_c (float): Término independiente.
- Returns:
- tuple or complex: Soluciones de la ecuación.
- """
- self.root = tk.Tk()
- self.root.title("Calculadora de Ecuaciones de Segundo Grado")
- self.label_a = tk.Label(self.root, text="Coeficiente cuadrático (A):")
- self.label_a.pack()
- self.entry_a = tk.Entry(self.root)
- self.entry_a.pack()
- self.label_b = tk.Label(self.root, text="Coeficiente lineal (B):")
- self.label_b.pack()
- self.entry_b = tk.Entry(self.root)
- self.entry_b.pack()
- self.label_c = tk.Label(self.root, text="Término independiente (C):")
- self.label_c.pack()
- self.entry_c = tk.Entry(self.root)
- self.entry_c.pack()
- self.button_calcular = tk.Button(
- self.root, text="Calcular", command=self.calcular_ecuacion)
- self.button_calcular.pack()
- self.button_limpiar = tk.Button(
- self.root, text="Limpiar Campos", command=self.limpiar_campos)
- self.button_limpiar.pack()
- self.textarea_resultado = tk.Text(self.root, height=10, width=80)
- self.textarea_resultado.insert(
- tk.END, "Resuelve una ecuación cuadrática de la forma ax^2 + bx + c = 0")
- self.textarea_resultado.pack()
- self.root.mainloop()
- def calcular_ecuacion(self):
- """
- Resuelve una ecuación cuadrática de la forma ax^2 + bx + c = 0.
- Args:
- coeficiente_a (float): Coeficiente cuadrático.
- coeficiente_b (float): Coeficiente lineal.
- coeficiente_c (float): Término independiente.
- Returns:
- tuple or complex: Soluciones de la ecuación.
- """
- A = float(self.entry_a.get())
- B = float(self.entry_b.get())
- C = float(self.entry_c.get())
- resultado = self.resolver_ecuacion_cuadratica(A, B, C)
- self.mostrar_resultado(resultado)
- def resolver_ecuacion_cuadratica(self, A, B, C):
- """
- Resuelve una ecuación cuadrática de la forma ax^2 + bx + c = 0.
- Args:
- coeficiente_a (float): Coeficiente cuadrático.
- coeficiente_b (float): Coeficiente lineal.
- coeficiente_c (float): Término independiente.
- Returns:
- tuple or complex: Soluciones de la ecuación.
- """
- if A == 0:
- return self.ecuacion_lineal(B, C)
- else:
- discriminante = B**2 - 4*A*C
- if discriminante < 0:
- return self.solucion_compleja(A, B, C)
- else:
- x1 = (-B + sqrt(discriminante)) / (2*A)
- x2 = (-B - sqrt(discriminante)) / (2*A)
- return f"Las soluciones de la ecuación son:\nx1 = {x1}\nx2 = {x2}"
- def ecuacion_lineal(self, B, C):
- """
- Resuelve una ecuación cuadrática de la forma ax^2 + bx + c = 0.
- Informa sí la ecuación es una recta.
- Returns:
- tuple or complex: Soluciones de la ecuación.
- """
- if B == 0:
- return "La ecuación es una recta con pendiente cero: x puede tomar cualquier valor."
- else:
- x = -C / B
- return f"La solución de la ecuación es x = {x}"
- def solucion_compleja(self, A, B, C):
- """
- Resuelve una ecuación cuadrática de la forma ax^2 + bx + c = 0.
- Genera un texto indicando que las soluciones son números complejos
- Returns:
- tuple or complex: Soluciones de la ecuación.
- """
- parte_real = -B / (2*A)
- parte_imaginaria = sqrt(-((B**2) - (4*A*C))) / (2*A)
- raiz1 = complex(parte_real, parte_imaginaria)
- raiz2 = complex(parte_real, -parte_imaginaria)
- return f"Las soluciones de la ecuación son números complejos:\nx1 = {raiz1}\nx2 = {raiz2}"
- def mostrar_resultado(self, resultado):
- """
- Resuelve una ecuación cuadrática de la forma ax^2 + bx + c = 0.
- Muestra resultados en área de texto
- Returns:
- tuple or complex: Soluciones de la ecuación.
- """
- self.textarea_resultado.delete("1.0", tk.END)
- self.textarea_resultado.insert(tk.END, resultado)
- def limpiar_campos(self):
- """
- Resuelve una ecuación cuadrática de la forma ax^2 + bx + c = 0.
- Limpia las cajas de ingreso de coeficientes.
- Returns:
- tuple or complex: Soluciones de la ecuación.
- """
- self.entry_a.delete(0, tk.END)
- self.entry_b.delete(0, tk.END)
- self.entry_c.delete(0, tk.END)
- Ecuaciones2GradoGUI()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement