from tkinter import *
def classificar_por_magnitude(magnitude):
if magnitude < 2.0:
return "Micro"
elif 2.0 <= magnitude < 3.0:
return "Muito pequeno"
elif 3.0 <= magnitude < 4.0:
return "Pequeno"
elif 4.0 <= magnitude < 5.0:
return "Moderado"
elif 5.0 <= magnitude < 6.0:
return "Forte"
elif 6.0 <= magnitude < 7.0:
return "Muito forte"
elif 7.0 <= magnitude < 8.0:
return "Grande"
else:
return "Extremo"
def classificar_por_profundidade(profundidade):
if profundidade < 70:
return "Raso"
elif 70 <= profundidade < 300:
return "Intermediário"
else:
return "Profundo"
def classificar_por_intensidade(intensidade_mmi):
if intensidade_mmi <= 3:
return "Fraco"
elif 4 <= intensidade_mmi <= 5:
return "Moderado"
elif 6 <= intensidade_mmi <= 7:
return "Forte"
elif 8 <= intensidade_mmi <= 9:
return "Muito forte"
else:
return "Extremamente forte"
def classificar_sismo():
try:
magnitude = float(entry_magnitude.get())
profundidade = float(entry_profundidade.get())
intensidade_mmi = int(entry_intensidade.get())
if intensidade_mmi <0 or intensidade_mmi>12:
classificacao_intensidade =f"Digita apenas de 1 a 12."
else:
classificacao_intensidade = classificar_por_intensidade(intensidade_mmi)
classificacao_magnitude = classificar_por_magnitude(magnitude)
classificacao_profundidade = classificar_por_profundidade(profundidade)
resultado.config(text=f"Classificação do sismo:\n"
f"Magnitude: {classificacao_magnitude}\n"
f"Profundidade: {classificacao_profundidade}\n"
f"Intensidade: {classificacao_intensidade}")
except ValueError:
resultado.config(text="Por favor, insira valores válidos.")
def limpar():
resultado.config(text="")
entry_profundidade.delete(0,END)
entry_magnitude.delete(0,END)
entry_intensidade.delete(0,END)
# Configurações da janela principal
root = Tk()
root.geometry("600x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Classificar Sismos")
# Título
titulo = Label(root, text="Classificar Sismos", font=("Arial", 25, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.25, rely=0.05)
# Labels de texto
texto_sub1 = Label(root, text="Profundidade do hipocentro (em km):",
font=("Arial", 15, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.25)
texto_sub2 = Label(root, text="Magnitude (escala Mw):", font=("Arial", 15, "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.25, rely=0.4)
texto_sub3 = Label(root, text="Intensidade na Escala Mercalli Modificada (1-12):",
font=("Arial", 13, "bold"), bg="#103030", fg="#49e3e3")
texto_sub3.place(relx=0.05, rely=0.55)
# Campos de entrada
entry_profundidade = Entry(root, font=("Arial", 14), justify='center')
entry_profundidade.place(relx=0.7, rely=0.25,relwidth=0.2)
entry_profundidade.focus()
entry_magnitude = Entry(root, font=("Arial", 14), justify='center')
entry_magnitude.place(relx=0.7, rely=0.4,relwidth=0.2)
entry_intensidade = Entry(root, font=("Arial", 14), justify='center')
entry_intensidade.place(relx=0.7, rely=0.55,relwidth=0.2)
# Botão para classificar
botao_classificar = Button(root, text="Classificar", font=("Arial", 14, "bold"), bg="#49e3e3",
fg="#103030", command=classificar_sismo)
botao_classificar.place(relx=0.35, rely=0.65)
botao_classificar = Button(root, text="Limpar", font=("Arial", 14, "bold"), bg="#49e3e3",
fg="#103030", command=limpar)
botao_classificar.place(relx=0.65, rely=0.65)
# Label para exibir o resultado
resultado = Label(root, text="", font=("Arial", 14), bg="#103030", fg="#49e3e3")
resultado.place(relx=0.15, rely=0.8)
root.mainloop()