Cálculo del área de un triángulo

Enunciado

Cálculo del área de un triángulo.

Análisis:

  • Crear la ventana, pedir los valores de la base y de la altura (Entry).

  • Cuando el usuario teclee el botón calcular, visualizar el área, si los valores introducidos son correctos.

Diagrama

Se crea la ventana

# creamos la ventana  
ventana = Tk() 
# damos título a la ventana
ventana.title("Mi primer Ejercicio")
# la hacemos de dimensiones fijas
ventana.resizable(False, False)
# ancho y alto de la ventana
ventana.geometry("450x250") 
# etiqueta del título del formulario (no de la ventana)
etiqueta_titulo = Label(ventana, text="Calcula el área de un triángulo")
etiqueta_titulo.grid(row=0, column=0, columnspan=2, padx=5, pady=3)
# etiqueta de la entrada de velocidad
etiqueta_altura = Label(ventana, text="Altura")
etiqueta_altura.grid(row=1, column=0, padx=5, pady=3)
# Entry de lectura de la altura
valor_altura = Entry(ventana, width=20)
valor_altura.grid(row=1,column=1)
# inserta valor inicial
valor_altura.insert(0, "0") 
# etiqueta de la entrada de la base
etiqueta_base = Label(ventana, text="Base")
etiqueta_base.grid(row=2, column=0, padx=5, pady=3)
#Pedir la base
valor_base = Entry(ventana, width=20)
valor_base.grid(row=2, column=1)
# inserta valor inicial
valor_base.insert(0,"0") 
notob_calcular = Button(ventana, text="Calcular área", width=20, command=calculoarea)
notob_calcular.grid(row=3, column=0, padx=5, pady=5)

Código realizar cálculos

Se inicializa la variable, para realizar la cálculo area = StringVar() . Cuando el usuario presione clic en el botón boton_calcular = Button(ventana, text="Calcular área", width=20, command=calculoarea). Dibuja la ventana.mainloop()

def calculoarea():  
    try:
        # lee el valor de la altura escrita por el usuario
        altura= valor_altura.get()
        # lee el valor del ángulo escrito por el usuario
        base = valor_base.get() 
        if float(altura)>0 and afloat(base>0):
            # cálcula el área
            calculo_area=float(base)*float(altura)/2
            # escribe el resultado en la eiqueta
            area.set("area: " + str(round(calculo_area,4)))  
        else:
            area.set("Los datos deben ser mayores que cero")
    except:
        area.set("Error al teclear datos")
 # asigna valor a la etiqueta
area = StringVar()
area.set("área: 0")    
calculo_area = Label(ventana, textvariable=area) # asocia etiqueta y variable de control
calculo_area.grid(row=4, column=0, padx=5, pady=5)
ventana.mainloop()

Código Completo

from tkinter import *
def calculoarea():  
    try:
        # lee el valor de la altura escrita por el usuario
        altura= valor_altura.get()
        # lee el valor del ángulo escrito por el usuario
        base = valor_base.get() 
        if float(altura)>0 and float(base)>0:
            # cálcula el área
            calculo_area=float(base)*float(altura)/2
            # escribe el resultado en la eiqueta
            area.set("area: " + str(round(calculo_area,4)))  
        else:
            area.set("Los datos deben ser mayores que cero")
    except:
        area.set("Error al teclear datos")


# creamos la ventana  
ventana = Tk() 
# damos título a la ventana
ventana.title("Mi primer Ejercicio")
# la hacemos de dimensiones fijas
ventana.resizable(False, False)
# ancho y alto de la ventana
ventana.geometry("450x250") 
# etiqueta del título del formulario (no de la ventana)
etiqueta_titulo = Label(ventana, text="Calcula el área de un triángulo")
etiqueta_titulo.grid(row=0, column=0, columnspan=2, padx=5, pady=3)
# etiqueta de la entrada de velocidad
etiqueta_altura = Label(ventana, text="Altura")
etiqueta_altura.grid(row=1, column=0, padx=5, pady=3)
# Entry de lectura de la altura
valor_altura = Entry(ventana, width=20)
valor_altura.grid(row=1,column=1)
# inserta valor inicial
valor_altura.insert(0, "0") 
# etiqueta de la entrada de la base
etiqueta_base = Label(ventana, text="Base")
etiqueta_base.grid(row=2, column=0, padx=5, pady=3)
#Pedir la base
valor_base = Entry(ventana, width=20)
valor_base.grid(row=2, column=1)
# inserta valor inicial
valor_base.insert(0,"0") 
boton_calcular = Button(ventana, text="Calcular área", width=20, command=calculoarea)
boton_calcular.grid(row=3, column=0, padx=5, pady=5)
# variable de control de la etiqueta
area = StringVar()
# asigna valor a la etiqueta
area.set("área: 0")    
calculo_area = Label(ventana, textvariable=area) # asocia etiqueta y variable de control
calculo_area.grid(row=4, column=0, padx=5, pady=5)
ventana.mainloop()

Última actualización