Em laboratório, um engenheiro ambiental mede a massa de uma amostra de solo antes e depois da secagem para determinar o teor de umidade.
Crie um programa que receba a massa úmida e a massa seca e calcule o percentual de umidade da amostra.

Passo 1

O que o enunciado pede e o que é fornecido:
  • Pedido: criar um programa que receba a massa úmida e a massa seca de uma amostra de solo e calcule o percentual de umidade da amostra.
  • Entradas (fornecidas ao programa): a massa úmida e a massa seca (valores numéricos, em gramas ou quilogramas — a unidade é qualquer uma, desde que as duas massas usem a mesma unidade).
  • Saída esperada: o percentual de umidade da amostra (um número em porcentagem, por exemplo 20\%).
  • Observações importantes que o enunciado implica:
    • A massa úmida deve ser maior ou igual à massa seca ( m_{\text{úmida}}\ge m_{\text{seca}}ú).
    • A massa seca não pode ser zero ( m_{\text{seca}}>0), caso contrário a definição que usaremos dá divisão por zero.

Passo 2

Definição e fórmula (explicação didática e escolha da convenção):
  • Em ciência do solo existem duas formas comuns de expressar teor de umidade:
    1. base úmida (wet basis): \text{Umidade}_{\text{wet}} = \frac{m_{\text{úmida}}-m_{\text{seca}}}{m_{\text{úmida}}}\times 100.úú
    2. base seca (gravimétrica, muito usada em solos): \text{Umidade}_{\text{dry}} = \frac{m_{\text{úmida}}-m_{\text{seca}}}{m_{\text{seca}}}\times 100.ú
  • Explicando as variáveis:
    • m_{\text{úmida}}ú é a massa da amostra antes da secagem (contém água + sólidos).
    • m_{\text{seca}} é a massa da amostra depois da secagem (só sólidos).
    • m_{\text{água}} = m_{\text{úmida}}-m_{\text{seca}}áú é a massa de água perdida na secagem.
  • Escolha usada no programa: adotaremos a definição gravimétrica (base seca), por ser a convenção comum em laboratório de solos. Assim a fórmula que vamos implementar é
\text{Teor de umidade (\%)} = \frac{m_{\text{úmida}}-m_{\text{seca}}}{m_{\text{seca}}}\times 100.ú
  • Comentário prático: essa fórmula dá a massa de água por massa de sólidos secos, multiplicada por 100 para expressar em porcentagem.

Passo 3

Passos algorítmicos que o programa deve executar (versão “muito mastigada” para a prova):
  1. Ler do usuário o valor de m_{\text{úmida}}ú.
  2. Ler do usuário o valor de m_{\text{seca}}.
  3. Verificar se os valores são válidos:
    • Ambos devem ser números.
    • Deve valer m_{\text{úmida}}\ge m_{\text{seca}}ú.
    • Deve valer m_{\text{seca}}>0.
      Se alguma verificação falhar, o programa deve avisar o usuário e terminar (ou pedir outro valor).
  4. Calcular m_{\text{água}} = m_{\text{úmida}}-m_{\text{seca}}áú.
  5. Calcular o teor de umidade pela fórmula \dfrac{m_{\text{água}}}{m_{\text{seca}}}\times100á.
  6. Exibir o resultado com formatação adequada (por exemplo com duas casas decimais e o símbolo \%).

Passo 4

Dicas de implementação e tratamento de casos comuns (para aplicar na prova e no código):
  • Conversão de entrada: sempre transformar a entrada de texto em número de ponto flutuante (ex.: “120” → 120{,}0). No código em Python usa-se float(...).
  • Validações simples que salvam da trapalhada na hora da prova:
    • Se m_{\text{seca}}=0 avisa que a operação é inválida.
    • Se m_{\text{úmida}}<m_{\text{seca}}ú avisa que os dados estão inconsistentes (não faz sentido físico).
  • Formatação: para apresentar porcentagem com duas casas decimais usar algo como format(valor, ".2f") ou f-strings em Python: f"{valor:.2f}%".
  • Exemplo numérico para treinar na prova:
    • Suponha m_{\text{úmida}}=120ú e m_{\text{seca}}=100.
    • Então m_{\text{água}}=120-100=20á.
    • Teor de umidade: \dfrac{20}{100}\times100 = 20\%.
    • Se alguém usasse a outra convenção (wet basis) o resultado seria \dfrac{20}{120}\times100\approx16{,}67\%; por isso é importante declarar qual definição está usando.

Passo 5

Programa em Python (passo a passo do que o código faz, linha a linha):
  • O programa abaixo lê duas massas do teclado, verifica se são válidas e calcula o teor de umidade na base seca.
  • Estrutura de tratamento de erro: se a conversão para número falhar ou as condições físicas não forem atendidas, o programa mostra uma mensagem amigável.

Resposta

#!/usr/bin/env python3
# Programa para calcular o teor de umidade (base seca) de uma amostra de solo.
# Fórmula usada:
# Teor (%) = (m_umida - m_seca) / m_seca * 100

def main():
    try:
        m_umida_str = input("Digite a massa úmida da amostra (mesma unidade para ambas): ").strip()
        m_seca_str = input("Digite a massa seca da amostra (mesma unidade para ambas): ").strip()
        m_umida = float(m_umida_str.replace(",", "."))
        m_seca = float(m_seca_str.replace(",", "."))
    except ValueError:
        print("Erro: entradas inválidas. Digite números (use vírgula ou ponto decimal).")
        return

    if m_seca <= 0:
        print("Erro: a massa seca deve ser maior que zero.")
        return
    if m_umida < m_seca:
        print("Erro: a massa úmida deve ser maior ou igual à massa seca.")
        return

    m_agua = m_umida - m_seca
    teor = (m_agua / m_seca) * 100.0

    print(f"Teor de umidade (base seca): {teor:.2f}%")

if __name__ == "__main__":
    main()

Exercícios relacionados