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
para
.
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
e volume em ); - calcule a densidade da amostra;
- converta o resultado de
para ; - mostre os resultados de forma clara (ambas as unidades).
Informações relevantes dadas/assumidas:
- massa: valor fornecido pelo usuário, em
; - volume: valor fornecido pelo usuário, em
; - resultado intermediário: densidade em
; - resultado final: densidade em
.
Passo 2
Conceito e fórmulas que vamos usar (explicadinho, sem pressa):
- A densidade é a relação entre massa e volume. A fórmula é
onde
é a densidade,
é a massa e
é 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
e .
Razão da conversão:
-
. -
.
Portanto:
Ou, invertendo,
Logo a conversão que usaremos é
Passo 3
Algoritmo passo a passo (como pensar na prova e depois traduzir para código):
- Ler a massa
em . - Ler o volume
em . - Verificar se
é diferente de zero (volume zero dá divisão por zero — tratar como erro). - Calcular
. - Calcular
. - 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
e em
.
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: recebemassa_kgevolume_m3e retorna. kgm3_para_gcm3: multiplica porpara converter para . 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 e
.
Suponha
- Calcular
:
- Converter para
usando o fator :
Interpretação: esse solo tem densidade
, que corresponde a
.
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
e volume em ), basta adaptar: convertendo para e 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
).
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()