Em uma mina, o minério extraído é armazenado em formato aproximadamente cilíndrico. Para planejamento logístico, o engenheiro precisa estimar o volume ocupado pela pilha.
Crie um programa que receba o raio da base e a altura da pilha e calcule o volume total armazenado.
Passo 1
O que o enunciado pede e quais dados ele dá.
- O enunciado pede que seja criado um programa que receba o raio da base e a altura da pilha e calcule o volume total armazenado.
- Dados de entrada (o que o programa deve receber):
- o raio da base, que chamaremos de
; - a altura da pilha, que chamaremos de
.
- o raio da base, que chamaremos de
- Saída desejada:
- o volume total armazenado, que chamaremos de
.
- o volume total armazenado, que chamaremos de
- Observações importantes sobre os dados:
-
e devem estar na mesma unidade (por exemplo, metros). O volume resultante terá a unidade cúbica correspondente (por exemplo, metros cúbicos). -
e devem ser números não-negativos.
-
Passo 2
A fórmula matemática que liga os dados ao resultado (explicação didática e intuitiva).
- A pilha tem formato aproximadamente cilíndrico. O volume de um cilindro é a área da base multiplicada pela altura.
- A base do cilindro é um círculo. A área de um círculo de raio
é dada por:
onde
(pi) é uma constante matemática aproximadamente igual a
. Essa constante aparece porque relaciona o diâmetro de um círculo com o seu perímetro e também aparece na fórmula da área.
- Multiplicando a área da base pela altura
obtém-se o volume do cilindro:
- Explicando os símbolos:
-
é a constante pi; -
é o raio da base (mesma unidade de comprimento que ); -
é a altura do cilindro; -
é o volume (unidade cúbica).
-
Passo 3
Exemplo numérico passo a passo (para você ver que a fórmula funciona e praticar os cálculos à mão).
- Suponha
(unidades) e (mesmas unidades). Calcular . - Primeiro calcule
:
- Depois calcule
:
- Aproximando
:
- Então, com
e , o volume é (na unidade cúbica correspondente).
Passo 4
Decisões de implementação e validação (como transformar a ideia matemática em um programa confiável).
- O algoritmo é simples:
- Ler
e (números reais). - Verificar se
e . Se algum for negativo, avisar o usuário e encerrar. - Calcular
. - Mostrar
com uma precisão apropriada (por exemplo, 6 casas decimais) e indicar a unidade cúbica se desejado.
- Ler
- Sobre precisão:
- Em linguagens comuns (ex.: Python) usar
fornecido pela biblioteca padrão (por exemplo, math.pi) garante boa precisão para a maioria das aplicações de engenharia de planejamento logístico. - Para entradas muito grandes ou necessidade de precisão extrema, considerar bibliotecas de precisão arbitrária; para a prova e uso normal, ponto flutuante padrão basta.
- Em linguagens comuns (ex.: Python) usar
- Sobre formato de entrada:
- O programa pode pedir os valores um a um (modo interativo) ou ler dois números em uma linha (modo para competições). Aqui vou fornecer uma versão interativa clara e robusta.
Passo 5
Dicas práticas para a prova e para você lembrar na hora:
- Sempre confirme que
e estão na mesma unidade antes de aplicar a fórmula . - Se o enunciado pede um arredondamento específico (por exemplo, 2 casas decimais), aplique o arredondamento no final.
- Se só der diâmetro
em vez de , lembre que , então a fórmula fica . - Para checar resultados rápido sem calculadora, reduza a expressão a um múltiplo de
(como no exemplo ) e só então multiplique por ou conforme a precisão desejada.
Passo 6
Resumo do algoritmo que o programa seguirá (passos que o código implementa).
- Ler
como número real. - Ler
como número real. - Se
ou , imprimir mensagem de erro. - Calcular
. - Imprimir
(formatado com casas decimais).
Resposta
# Programa em Python para calcular o volume de uma pilha aproximada por um cilindro.
# O programa lê o raio da base e a altura e imprime o volume.
import math
def main():
try:
r = float(input("Raio da base (mesma unidade): ").strip())
h = float(input("Altura (mesma unidade): ").strip())
except ValueError:
print("Entrada inválida: informe números (ex.: 2.5).")
return
if r < 0 or h < 0:
print("Raio e altura devem ser não-negativos.")
return
V = math.pi * r * r * h # V = pi * r^2 * h
print(f"Volume: {V:.6f} (unidade cúbica)")
if __name__ == "__main__":
main()