Boa tarde!
Aproveitando esta leva de postagens sobre Haskell, agora vamos apresentar a solução do problema Salary with Bonus (salário com bônus). Esse problema segue a mesma linha do anterior, sendo bom para trabalhar a lógica e encontrar a fórmula necessária para realizar o cálculo correto. Veja na sequência deste post como eu fiz para resolvê-lo, e fique à vontade para expor sua solução nos comentários!
Plataforma: Beecrowd (antiga URI)
In english:
Make a program that reads a seller's name, his/her fixed salary and the sale's total made by himself/herself in the month (in money). Considering that this seller receives 15% over all products sold, write the final salary (total) of this seller at the end of the month , with two decimal places.
- Don’t forget to print the line's end after the result, otherwise you will receive “Presentation Error”.
- Don’t forget the blank spaces.
Linguagem: Haskell
Solução:
Resolvi este exercício primeiramente importando a função printf, pois ela facilita a exibição dos resultados com a delimitação de casas decimais, como é o caso do valor que precisamos. Nossa resposta é um valor monetário, então precisamos que os valores estejam formatados com duas casas decimais.
Após importar o printf, definimos nossa função main e lemos os três valores necessários. O primeiro (sellerName) é uma string, então se lê a linha inteira com getLine. O segundo e o terceiro são valores monetários, então lemos como número de ponto flutuante de dupla precisão (Double). Depois, para calcular o salário total do funcionário, basta fazer o cálculo do salário fixo acrescido da comissão pelas vendas. Esta comissão é de 15% sobre o total de vendas, portanto, total * 0.15 nos dará esse valor. Basta somar isso ao salário fixo e temos a resposta, que precisa ser formatada como o exercício pede, incluindo a quebra de linha (\n) no fim.
E aí, achou fácil?
import Text.Printf (printf)
main :: IO ()
main = do
sellerName <- getLine
fixedSalary <- readLn :: IO Double
totalSales <- readLn :: IO Double
printf "TOTAL = R$ %.2f\n" (fixedSalary+(0.15*totalSales))
Em outras soluções aqui do blog você pode verificar outras formas de formatar a saída ou de realizar os cálculos. Dessa vez eu resolvi dessa forma, já colocando diretamente a expressão necessária para obter a resposta dentro do printf. Fique à vontade para fazer do seu jeito!
Ajude este blog! O PIX para doações é 6d8bc7a8-5d74-493a-ab7a-3515baf35956.
Nenhum comentário:
Postar um comentário