Voltando a fazer posts por aqui 😃
Hoje vamos resolver mais um problema de Haskell, o problema Esfera. Mais um da categoria Iniciante, é bem simples e bom para compreender os comandos básicos dessa linguagem declarativa.
Plataforma: Beecrowd (antiga URI)
In english:
Make a program that calculates and shows the volume of a sphere being provided the value of its radius (R) . The formula to calculate the volume is: (4/3) * pi * R3. Consider (assign) for pi the value 3.14159. Tip: Use (4/3.0) or (4.0/3) in your formula, because some languages (including C++) assume that the division's result between two integers is another integer. :)
Linguagem: Haskell
Solução:
Precisamos obter o valor do raio (r) que é informado pelo usuário. Isso é feito usando readLn, e o tipo precisa ser IO Double, pois o raio não é um número inteiro, mas sim de ponto flutuante.
A fórmula a ser utilizada é r**3.0 * 3.14159 * 4.0/3.0. Basta imprimir este valor conforme solicitado no enunciado.
Para imprimir o resultado foi utilizado o printf (não esqueça do import para que esta função funcione), assim fica fácil delimitar as casas decimais. Lembre-se que o %.3f formata o resultado em ponto flutuante com três casas após a vírgula, exatamente como pede o enunciado.
import Text.Printf (printf)
main :: IO ()
main = do
r <- readLn :: IO Double
printf "VOLUME = %.3f\n" (r**3.0 * 3.14159 * 4.0/3.0)
Aqui no blog também está disponível a solução para o problema 1011 em outras linguagens, então se você gosta de programar em linguagens imperativas, também vai encontrar a solução :)
E novamente peço para que ajude o blog, para que eu siga postando aqui respostas em diversas linguagens! Sei que isso ajuda muita gente que está iniciando na programação. O PIX para doações é 6d8bc7a8-5d74-493a-ab7a-3515baf35956. Sua ajuda será muito útil e eu agradeço demais!