Como referenciar este texto: ‘Escala Richter e Lógica Condicional: Programando a Energia liberada por terremotos’. Rodrigo Terra. Publicado em: 02/05/2025. Link da postagem: https://www.makerzine.com.br/educacao/escala-richter-e-logica-condicional-programando-a-energia-liberada-por-terremotos/.
Conteúdos que você verá nesta postagem
Objetivo do Código
Simular uma consulta interativa sobre a Escala Richter, onde o usuário informa o valor da magnitude de um terremoto, e o programa responde com a classificação correspondente, com base em critérios internacionais.
O que a escala Richter?
A Escala Richter é uma escala logarítmica desenvolvida em 1935 pelo sismólogo Charles F. Richter para medir a magnitude dos terremotos, ou seja, a quantidade de energia liberada no epicentro durante um abalo sísmico. Por ser logarítmica de base 10, cada incremento de 1 ponto na escala representa um terremoto com dez vezes mais amplitude de onda e aproximadamente 32 vezes mais energia liberada. Embora a escala não tenha um limite superior teórico, os maiores terremotos já registrados na história ficaram abaixo de magnitude 10. A Escala Richter revolucionou a forma como cientistas e engenheiros analisam tremores de terra, sendo um dos marcos no estudo da sismologia.
Estrutura Lógica Geral
O código é dividido em três partes principais, organizadas em funções:
1. exibir_introducao()
Esta função mostra uma explicação inicial sobre a Escala Richter:
Informa que é uma escala logarítmica de base 10;
Explica que seu objetivo é medir a energia liberada por terremotos;
Indica a faixa teórica da escala e a ausência de registros reais acima de magnitude 10.
Essa introdução aparece uma única vez, no início do programa.
2. classificar_magnitude(mag)
Recebe um valor decimal (mag
) e retorna uma descrição textual com base em intervalos de magnitude. A lógica segue condições if/elif
:
Intervalo de Magnitude | Classificação |
---|---|
< 2 | Microssismo — imperceptível |
2 <= mag < 3 | Muito pequeno |
3 <= mag < 4 | Pequeno |
4 <= mag < 5 | Ligeiro |
5 <= mag < 6 | Moderado |
6 <= mag < 7 | Forte |
7 <= mag < 8 | Grande |
8 <= mag < 9 | Importante |
9 <= mag < 10 | Excepcional |
>= 10 | Extremo (nunca registrado) |
Recursos de Programação Usados
Recurso | Descrição |
---|---|
def | Define funções reutilizáveis |
while True | Laço infinito controlado por uma condição de saída |
try/except | Captura erros de conversão de entrada (ex: texto → float) |
input() | Coleta dados do usuário |
print() | Exibe mensagens |
.strip().lower() | Limpa e padroniza a entrada do usuário para comparação |
Benefícios da Lógica Usada
- Fácil de manter e expandir: funções separadas facilitam melhorias.
- Resilente a erros: evita falhas com entradas inválidas.
- Didática: ideal para fins educacionais ou aprendizado de lógica condicional.
Código
def exibir_introducao():
print("\n" * 100) # Simula 'limpar' a tela
print("=" * 50)
print(" ESCALA RICHTER - MAGNITUDE")
print("=" * 50)
print("A Escala Richter é uma escala logarítmica de base 10.")
print("Ela foi desenvolvida para quantificar a energia liberada")
print("por terremotos com base na amplitude das ondas sísmicas.")
print("\nValores da escala:")
print("- Vão de 0 até, teoricamente, infinito.")
print("- Na prática, nunca foi registrada uma magnitude acima de 10.")
print("=" * 50)
def classificar_magnitude(mag):
if mag < 2:
return "Microssismos — não perceptíveis por humanos (~8.000 por dia)."
elif 2 <= mag < 3:
return "Muito pequeno — geralmente não sentido, apenas detectado por sismógrafos (~1.000 por dia)."
elif 3 <= mag < 4:
return "Pequeno — frequentemente sentido, mas raramente causa danos (~49.000 por ano)."
elif 4 <= mag < 5:
return "Ligeiro — objetos internos tremem, mas danos significativos são improváveis (~6.200 por ano)."
elif 5 <= mag < 6:
return "Moderado — pode causar danos em construções fracas (~800 por ano)."
elif 6 <= mag < 7:
return "Forte — destrutivo em áreas até 160 km do epicentro (~120 por ano)."
elif 7 <= mag < 8:
return "Grande — pode causar danos graves em regiões extensas (~18 por ano)."
elif 8 <= mag < 9:
return "Importante — danos sérios num raio de centenas de km (~1 por ano)."
elif 9 <= mag < 10:
return "Excepcional — devasta áreas em um raio de milhares de km (~1 a cada 20 anos)."
else:
return "Extremo — nunca registrado na história; extremamente raro."
def main():
exibir_introducao()
while True:
try:
mag = float(input("\nDigite um valor para a magnitude: "))
classificacao = classificar_magnitude(mag)
print(f"\nClassificação: {classificacao}")
except ValueError:
print("Por favor, insira um número válido.")
continue
sair = input("\nDeseja fazer outra consulta? (S/N): ").strip().lower()
if sair == "n":
print("\nEncerrando o programa. Obrigado!")
break
if __name__ == "__main__":
main()
Se você acha que este conteúdo pode ser útil para alguém, compartilhe!
Ao divulgar os textos do MakerZine, você contribui para que todo o material continue acessível e gratuito para todas as pessoas.