Hugo Correia Posted March 14, 2022 at 05:19 PM Report Share #625558 Posted March 14, 2022 at 05:19 PM Estou com dúvidas em um exercicio onde tenho dado voltas e voltas e gostava de saber se alguem me podia ajudar. Tenho um exercicio onde duas pessoas vão se encontrar, nos vamos ter que indicar a hora e os minutos em que a primeira pessoa se encontrou e a hora e os minutos em que a segunda pessoa se encontrou. Se encontrassem numa duração entre 59 minutos o primeiro iria dizer "Passaram apenas 59 minutos" e outro "De facto!" Se entrassem numa duração de 1 hora e 1 minuto o primeiro iria dizer "Passaram apenar 61 minutos" e outro " "Queres dizer, 6 horas e 7 minutos? Sendo que temos que usar esta função: dialogo :: Int -> Int -> Int -> Int -> (String, String) Exemplo : Exemplo 1 dialogo 7 58 14 5 == ("Passaram apenas 367 minutos!","Queres dizer, 6 horas e 7 minutos?!") Exemplo 2 dialogo 2 1 2 48 == ("Passaram apenas 47 minutos!", "De facto!") Se alguem me poder ajudar, posso mandar o documento do exercicio, obrigado! Link to comment Share on other sites More sharing options...
pdfrod Posted March 14, 2022 at 06:45 PM Report Share #625560 Posted March 14, 2022 at 06:45 PM Viva! Disseste que estavas com dúvidas, mas apenas escreveste a descrição do exercício; não disseste quais eram as dúvidas 😅 Link to comment Share on other sites More sharing options...
Hugo Correia Posted March 14, 2022 at 08:58 PM Author Report Share #625561 Posted March 14, 2022 at 08:58 PM Foi mal ! 😅 Eu criei funções para converter horas para minutos, os minutos para horas E agora tenho uma duvida como é que devo criar uma função para quando passar por exemplo "apenas x minutos", não estou a conseguir fazer Link to comment Share on other sites More sharing options...
pdfrod Posted March 16, 2022 at 11:22 PM Report Share #625574 Posted March 16, 2022 at 11:22 PM Podes mostrar o código que tens? Assim é mais fácil de perceber as tuas dificuldades. Link to comment Share on other sites More sharing options...
Solution thoga31 Posted March 22, 2022 at 08:40 AM Solution Report Share #625598 Posted March 22, 2022 at 08:40 AM (edited) Código feito meio à pressa ainda sem o café da manhã bebido 😄 import Data.Function -- para a função "on" to_min (x, y) = x * 60 + y dialogo a b x y = (msg1, msg2) where diff = abs . (subtract `on` to_min) (a, b) $ (x, y) hora = diff `div` 60 minuto = diff - 60 * hora msg1 = "Passaram apenas " ++ show diff ++ " minutos!" msg2 | diff < 60 = "De facto!" | otherwise = "Queres dizer, " ++ show hora ++ " horas e " ++ show minuto ++ " minutos?" Decerto que há formas mais elegantes de resolver. Cumprimentos. Edited March 22, 2022 at 08:46 AM by thoga31 Código ajustado com alguma cafeína Knowledge is free! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now