Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- """
- Created on Sat Jun 3 23:27:44 2023
- Este código permite calcular el área del círculo, el usuario debe
- ingresar el radio y puede elegir entre 'cm/metros' como unidades.
- Se implementa un Control de Errores que sustituye "," por "." evitando el error
- de 'float', o genera un mensaje de error si se ingresan valores que no sean
- numéricos.
- Utiliza tkinter para generar una interfaz gráfica.
- @alpha
- """
- import math
- import tkinter as tk
- def calcular_area():
- """
- Este código permite calcular el área del círculo, el usuario debe
- ingresar el radio y puede elegir entre 'cm/metros' como unidades
- Returns
- -------
- Área del círculo.
- """
- radio_str = entry_radio.get()
- unidades = var_unidades.get()
- try:
- radio = float(radio_str.replace(",", "."))
- except ValueError:
- resultado_text.config(state=tk.NORMAL)
- resultado_text.delete("1.0", tk.END)
- resultado_text.tag_configure(
- "error", foreground="red", font=("Courier New", 10, "bold"))
- resultado_text.insert(
- tk.END, "Error: Radio inválido.\nIngrese un valor numérico.", "error")
- resultado_text.config(state=tk.DISABLED)
- return
- area = math.pi * (radio**2)
- resultado_text.config(state=tk.NORMAL)
- resultado_text.delete("1.0", tk.END)
- resultado_text.insert(
- tk.END, f"El área del círculo es: {area:.4f} {unidades}^2")
- resultado_text.config(state=tk.DISABLED)
- # Crear ventana
- ventana = tk.Tk()
- ventana.title("Cálculo de área de un círculo")
- # Etiqueta y entrada para el radio
- label_radio = tk.Label(ventana, text="Radio:")
- label_radio.pack()
- entry_radio = tk.Entry(ventana)
- entry_radio.pack()
- # Opciones para las unidades
- var_unidades = tk.StringVar(value="cm")
- radio_cm = tk.Radiobutton(
- ventana, text="cm", variable=var_unidades, value="cm")
- radio_cm.pack()
- radio_metros = tk.Radiobutton(
- ventana, text="metros", variable=var_unidades, value="metros")
- radio_metros.pack()
- # Botón de calcular
- boton_calcular = tk.Button(
- ventana, text="Calcular área", command=calcular_area)
- boton_calcular.pack()
- # Resultado
- resultado_text = tk.Text(ventana, height=5, width=50)
- resultado_text.config(state=tk.DISABLED)
- resultado_text.pack()
- # Iniciar bucle de eventos
- ventana.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement