Escala Richter e Lógica Condicional: Programando a Energia liberada por terremotos

Publicado em: 02/05/2025

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 MagnitudeClassificação
< 2Microssismo — imperceptível
2 <= mag < 3Muito pequeno
3 <= mag < 4Pequeno
4 <= mag < 5Ligeiro
5 <= mag < 6Moderado
6 <= mag < 7Forte
7 <= mag < 8Grande
8 <= mag < 9Importante
9 <= mag < 10Excepcional
>= 10Extremo (nunca registrado)

Recursos de Programação Usados

RecursoDescrição
defDefine funções reutilizáveis
while TrueLaço infinito controlado por uma condição de saída
try/exceptCaptura 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()

				
			

Saída

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.