Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador average 2. Mostrar todas as postagens
Mostrando postagens com marcador average 2. Mostrar todas as postagens

terça-feira, 21 de fevereiro de 2023

URI (BEECROWD) - 1006 - Average 2 (Média 2) - Iniciante - Haskell

Ajude o blog! PIX para doações: 6d8bc7a8-5d74-493a-ab7a-3515baf35956

Vamos resolver mais um exercício em Haskell! Agora o problema Average 2 (Média 2)! Veja como é fácil resolver problemas utilizando esta linguagem!


Plataforma: Beecrowd (antiga URI)

Problema1006

Enunciado:

In english:
Read three values (variables A, B and C), which are the three student's grades. Then, calculate the average, considering that grade A has weight 2, grade B has weight 3 and the grade C has weight 5. Consider that each grade can go from 0 to 10.0, always with one decimal place.

Linguagem: Haskell

Solução:

Esse exercício é bem semelhante ao exercício "Média 1". As diferenças são:
  • naquele exercício havia apenas duas variáveis, e aqui há três;
  • o peso total no exercício "Média 1" era 11 e aqui é 10. Daria para calcular multiplicando os pesos como diz o exercício e no fim dividindo todos os valores por 10.0. No entanto, achei melhor já multiplicar cada valor lido por "seu_peso/10", ou seja, usando 0.2 no lugar de 2. Assim poupo uma operação no final. Então a fórmula que traz a média correta fica a*0.2 + b*0.3 + c*0.5.
  • A quantidade de casas decimais. Aqui usa-se uma casa, então a formatação é %.1f. Utilizei printf devido à facilidade de delimitar casas decimais com esta função.
Veja o código completo abaixo:

import Text.Printf (printf)
main :: IO ()
main = do
   a <- readLn :: IO Double
   b <- readLn :: IO Double
   c <- readLn :: IO Double
printf "MEDIA = %.1f\n" (a*0.2 + b*0.3 + c*0.5)

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