Durante um estudo geotécnico, um engenheiro mede a massa e o volume de uma amostra de solo para calcular sua densidade. Para um relatório internacional, o valor precisa ser convertido de \mathrm{kg} / \mathrm{m}^{3} para \mathrm{g} / \mathrm{cm}^{3}.
Desenvolva um programa que realize o cálculo da densidade e faça a conversão da unidade.

Passo 1

O enunciado pede que seja desenvolvido um programa que:
  • receba a massa e o volume de uma amostra de solo (o enunciado não especifica unidades de entrada, então assumimos entradas em unidades padrão do problema: massa em \mathrm{kg} e volume em \mathrm{m}^{3});
  • calcule a densidade da amostra;
  • converta o resultado de \mathrm{kg}/\mathrm{m}^{3} para \mathrm{g}/\mathrm{cm}^{3};
  • mostre os resultados de forma clara (ambas as unidades).
Informações relevantes dadas/assumidas:
  • massa: valor fornecido pelo usuário, em \mathrm{kg};
  • volume: valor fornecido pelo usuário, em \mathrm{m}^{3};
  • resultado intermediário: densidade em \mathrm{kg}/\mathrm{m}^{3};
  • resultado final: densidade em \mathrm{g}/\mathrm{cm}^{3}.

Passo 2

Conceito e fórmulas que vamos usar (explicadinho, sem pressa):
  • A densidade é a relação entre massa e volume. A fórmula é
\rho=\frac{m}{V},
onde \rho é a densidade, m é a massa e V é o volume. Todas as variáveis devem estar nas mesmas unidades base para que a razão faça sentido.
  • Conversão de unidades entre \mathrm{kg}/\mathrm{m}^{3} e \mathrm{g}/\mathrm{cm}^{3}.
Razão da conversão:
  • 1\\ \mathrm{kg}=1000\\ \mathrm{g}.
  • 1\\ \mathrm{m}=100\\ \mathrm{cm} \Rightarrow 1\\ \mathrm{m}^{3}=(100\\ \mathrm{cm})^{3}=1\,000\,000\\ \mathrm{cm}^{3}=10^{6}\\ \mathrm{cm}^{3}.
Portanto:
1\\ \frac{\mathrm{kg}}{\mathrm{m}^{3}}=\frac{1000\\ \mathrm{g}}{10^{6}\\ \mathrm{cm}^{3}}=10^{-3}\\ \frac{\mathrm{g}}{\mathrm{cm}^{3}}.
Ou, invertendo,
1\\ \frac{\mathrm{g}}{\mathrm{cm}^{3}}=1000\\ \frac{\mathrm{kg}}{\mathrm{m}^{3}}.
Logo a conversão que usaremos é
\rho_{\mathrm{g}/\mathrm{cm}^{3}} = \rho_{\mathrm{kg}/\mathrm{m}^{3}} \times 10^{-3}.

Passo 3

Algoritmo passo a passo (como pensar na prova e depois traduzir para código):
  1. Ler a massa m em \mathrm{kg}.
  2. Ler o volume V em \mathrm{m}^{3}.
  3. Verificar se V é diferente de zero (volume zero dá divisão por zero — tratar como erro).
  4. Calcular \rho_{\mathrm{kg}/\mathrm{m}^{3}}=\dfrac{m}{V}.
  5. Calcular \rho_{\mathrm{g}/\mathrm{cm}^{3}}=\rho_{\mathrm{kg}/\mathrm{m}^{3}}\times 10^{-3}.
  6. Apresentar ambos os resultados com formatação adequada (por exemplo, número de casas decimais ou notação científica, dependendo do tamanho).
Dicas práticas para a prova:
  • Sempre checar o denominador antes de dividir.
  • Se o enunciado trouxer unidades diferentes (ex: massa em g, volume em cm^3), converta para o sistema desejado antes de aplicar a fórmula.
  • Para arredondamento: escolha número de casas decimais conforme precisão das entradas.

Passo 4

Programa em Python (simples, robusto e fácil de entender). O código implementa o algoritmo acima, trata entradas inválidas e imprime densidade em \mathrm{kg}/\mathrm{m}^{3} e em \mathrm{g}/\mathrm{cm}^{3}.
def calcular_densidade(massa_kg, volume_m3):
    return massa_kg / volume_m3

def kgm3_para_gcm3(rho_kgm3):
    return rho_kgm3 * 1e-3

def main():
    print("Cálculo de densidade e conversão de unidades")
    try:
        massa = float(input("Digite a massa (kg): ").strip())
        volume = float(input("Digite o volume (m^3): ").strip())
    except ValueError:
        print("Entrada inválida. Use números (ex: 2.5).")
        return

    if volume == 0:
        print("Erro: o volume não pode ser zero.")
        return

    rho_kgm3 = calcular_densidade(massa, volume)
    rho_gcm3 = kgm3_para_gcm3(rho_kgm3)

    # Exibe resultados com precisão conveniente (ajuste se quiser mais/menos casas)
    print(f"Densidade = {rho_kgm3:.6f} kg/m^3")
    print(f"Densidade = {rho_gcm3:.6f} g/cm^3")

if __name__ == "__main__":
    main()
Explicação rápida do código (linha a linha, tipo aquele professor paciente):
  • calcular_densidade: recebe massa_kg e volume_m3 e retorna \dfrac{m}{V}.
  • kgm3_para_gcm3: multiplica por 10^{-3} para converter para \mathrm{g}/\mathrm{cm}^{3}.
  • main: lê valores do usuário, trata erros de conversão (se o usuário digitar texto), verifica volume não nulo, calcula e imprime resultados com 6 casas decimais (pode ajustar).

Passo 5

Exemplo numérico passo a passo (para fixar a ideia — tente replicar esses passos na prova se pedirem “mostre o cálculo”):
Suponha m=2{,}5\\ \mathrm{kg} e V=0{,}001\\ \mathrm{m}^{3}.
  1. Calcular \rho_{\mathrm{kg}/\mathrm{m}^{3}}:
\rho_{\mathrm{kg}/\mathrm{m}^{3}}=\frac{m}{V}=\frac{2{,}5}{0{,}001}=2500\\ \frac{\mathrm{kg}}{\mathrm{m}^{3}}.
  1. Converter para \mathrm{g}/\mathrm{cm}^{3} usando o fator 10^{-3}:
\rho_{\mathrm{g}/\mathrm{cm}^{3}} = 2500 \times 10^{-3} = 2{,}5\\ \frac{\mathrm{g}}{\mathrm{cm}^{3}}.
Interpretação: esse solo tem densidade 2500\\ \mathrm{kg}/\mathrm{m}^{3}, que corresponde a 2{,}5\\ \mathrm{g}/\mathrm{cm}^{3}.

Passo 6

Observações finais e variações úteis (pra prova e relatório):
  • Se as entradas vierem em outras unidades (por ex., massa em \mathrm{g} e volume em \mathrm{cm}^{3}), basta adaptar: convertendo para \mathrm{kg} e \mathrm{m}^{3} ou calculando direto e convertendo no fim.
  • Para mais controle de precisão, usar formatação ou bibliotecas para números decimais.
  • Sempre documentar no relatório quais unidades foram usadas e mostrar a conversão (por ex., explicar que foi usado 1\\ \mathrm{kg}/\mathrm{m}^{3}=10^{-3}\\ \mathrm{g}/\mathrm{cm}^{3}).

Resposta

def calcular_densidade(massa_kg, volume_m3):
    return massa_kg / volume_m3

def kgm3_para_gcm3(rho_kgm3):
    return rho_kgm3 * 1e-3

def main():
    print("Cálculo de densidade e conversão de unidades")
    try:
        massa = float(input("Digite a massa (kg): ").strip())
        volume = float(input("Digite o volume (m^3): ").strip())
    except ValueError:
        print("Entrada inválida. Use números (ex: 2.5).")
        return

    if volume == 0:
        print("Erro: o volume não pode ser zero.")
        return

    rho_kgm3 = calcular_densidade(massa, volume)
    rho_gcm3 = kgm3_para_gcm3(rho_kgm3)

    print(f"Densidade = {rho_kgm3:.6f} kg/m^3")
    print(f"Densidade = {rho_gcm3:.6f} g/cm^3")

if __name__ == "__main__":
    main()

Exercícios relacionados