Pesquisar este blog

Livros Recomendados

quarta-feira, 22 de fevereiro de 2023

URI (BEECROWD) - 1008 - Salary (Salário) - Iniciante - Haskell

Buenas, pessoal!

Resolvi aqui o problema "Salário" (Salary). Esse foi bem fácil, só tem que tomar cuidados com espaços, quebras de linha e delimitação de casas decimais para não deixar de receber o "accepted". Vamos conferir como eu fiz este código?

Plataforma: Beecrowd (antiga URI)

Problema1008

Enunciado:

In english:
Write a program that reads an employee's number, his/her worked hours number in a month and the amount he received per hour. Print the employee's number and salary that he/she will receive at 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 space before and after the equal signal and after the U$.

Linguagem: Haskell

Solução:

Basta ler os três valores conforme dito no enunciado e depois formatar a saída como o solicitado. Eu fiz dois comandos de escrita, um putStrLn para a primeira linha, que é NUMBER = numero-do-empregado, e um printf para imprimir SALARY = U$ valor, com delimitação de duas casas decimais.

Um ponto importante neste exercício é que o enunciado menciona a necessidade de ler dois valores inteiros e um de ponto flutuante. No entanto, se você utilizar IO Int para "workedHours", verá que ocorrerá um erro. Isto acontece porque o Haskell tem um sistema de tipos fortemente tipado e não permite a operação entre Int e Double

Meu código acabou ficando assim:

import Text.Printf (printf)
main :: IO ()
main = do 
   employeeNumber <- readLn :: IO Int 
   workedHours <- readLn :: IO Double
   amountPerHour <- readLn :: IO Double

   putStrLn ("NUMBER = " ++ show(employeeNumber))
   printf "SALARY = U$ %.2f\n" (workedHours*amountPerHour)

Assim como em outras soluções que postei aqui, você pode usar let aqui e já calcular o salário antes do printf. Eu preferi fazer já no mesmo comando.

Mais uma fez peço que ajude este blog! O PIX para doações é 6d8bc7a8-5d74-493a-ab7a-3515baf35956

Valeu!

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