Pesquisar este blog

Livros Recomendados

quinta-feira, 23 de fevereiro de 2023

URI (BEECROWD) - 1009 - Salary with Bonus (Salário com Bônus) - Iniciante - Haskell

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)

Problema1009

Enunciado:

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

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas