En el post anterior (16/abril) publicamos el código para la resolucion de ecuaciones de segundo grado en python 3.x. Partiendo de este código anterior desarrollamos una aplicacion con interfaz de usuario, usando la librería tkinter, en nuestro intento por aprender programacion en python 3.3. El código queda como sigue.
## graficador de la funciones from tkinter import* from tkinter import messagebox import matplotlib.pyplot as plt import numpy as np ventana = Frame(height = 400, width = 400) ventana.pack(padx = 10, pady = 10) ### Declarando Variables a = DoubleVar() b = DoubleVar() c= DoubleVar() restx1 = StringVar() restx2 = StringVar() #Declarando funciones ### funcion graficar def graficar(): a = aA.get() b = bB.get() c = cC.get() ax = float(a) bx = float(b) cx = float (c) x = np.arange(-10,10,0.5) y = ax*x**2 + bx*x + cx plt.plot(x,y) plt.title('a*x^2 + b*x + c = 0') plt.xlabel('X') plt.ylabel('Y') plt.show() ##termina funcion graficar ### inica funcion calcular def calcular(): a = aA.get() b = bB.get() c = cC.get() ax = float(a) bx = float(b) cx = float (c) ## calculando Delta delta = float(bx**2-4*ax*cx) if delta<0: messagebox.showerror('Eror', 'No hay solucion') elif delta ==0: s == float(-bx/2*ax) messagebox.showinfo('resultado','Solucion unica ', s) else: resultado = Label(ventana, text = "Resultado") resultado.place(bordermode = OUTSIDE, height = 30, width= 100, x = 150, y= 250) resultado1 = Label(ventana, text = "X1") resultado1.place(bordermode = OUTSIDE, height = 30, width= 50, x = 180, y= 280) resultado2 = Label(ventana, text = "X2") resultado2.place(bordermode = OUTSIDE, height = 30, width= 50, x = 180, y= 310) x1 = float((-bx+((bx**2 - 4*ax*cx))**0.5)/(2*ax)) x2 = float((-bx-((bx**2 - 4*ax*cx))**0.5)/(2*ax)) r1 = Label(ventana,textvariable = restx1) r1.place(bordermode = OUTSIDE, height = 30, width= 50, x = 230, y= 280) restx1.set(x1) r2 = Label(ventana,textvariable = restx2) r2.place(bordermode = OUTSIDE, height = 30, width= 50, x = 230, y= 310) restx2.set(x2) ##iniciando maquetado de interfaz aA = Entry(ventana, textvariable = a) aA.place(bordermode = OUTSIDE, height = 30, width = 50, x = 10, y = 40) bB = Entry (ventana, textvariable = b) bB.place(bordermode = OUTSIDE, height = 30, width = 50, x = 130, y = 40) cC = Entry(ventana, textvariable = c) cC.place(bordermode = OUTSIDE, height = 30, width = 50, x = 230, y = 40) ## entrada de TExto xa = Label(ventana, text = "X^2 + ") xa.place(bordermode = OUTSIDE, height = 30, width = 50, x =70,y=40 ) xb = Label(ventana, text = "X + ") xb.place(bordermode = OUTSIDE, height = 30, width = 50, x = 180, y = 40) xc = Label(ventana, text = "= 0 ") xc.place(bordermode = OUTSIDE, height = 30, width = 50, x=280, y = 40) ### boton de graficar graficar = Button ( ventana, text = "Graficar", command = graficar) graficar.place(bordermode= OUTSIDE, height= 40, width = 100, x = 40, y = 200) ## boton calcular calcular = Button (ventana, text = "Calcular", command = calcular) calcular.place(bordermode = OUTSIDE, height = 40, width = 100, x = 160, y = 200) ## terminado el maquetetado de la GUI ventana.mainloop()
Compara la cantidad de codigo Python vs la cantida de Codigo Matlab, ¿Cual crees que es mas conveniente?, ¿Cual se te hace mas facil?, ¿Cual te enseñan en la facultad de ingenieria? Tu tienes la unica respuesta si deseas aprender python.
hum muito bom o código, me ajudou com alguns problemas. agradeço.
ResponderEliminar