Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Exercício 1
- ex1 :: Float -> Float -> Float -> (Float,Float)
- ex1 a b c
- | b*b-4*a*c < 0 = error "delta negativo"
- | otherwise = (x1,x2)
- where
- x1 = (-b + sqrt(b*b-(4*a*c)))/(2*a)
- x2 = (-b - sqrt(b*b-(4*a*c)))/(2*a)
- --Exercício 2
- ex2 :: Float -> Float -> Float -> Integer
- ex2 a b c
- | ((a > media) && (b < media) && (c < media)) = 1
- | ((b > media) && (a < media) && (c < media)) = 1
- | ((c > media) && (a < media) && (b < media)) = 1
- | ((a > media) && (b > media) && (c < media))||((a > media) && (b < media) && (c > media))||((a < media) && (b > media) && (c > media)) = 2
- | otherwise = 0
- where media = (a+b+c)/3
- --Exercício 3
- ex3 :: Integer -> Integer -> (Integer,Integer)
- ex3 a b
- | a < b = ((ex3_1 a b), (ex3_2 (a+1) b))
- | a > b = ((ex3_1 b a), (ex3_2 (b+1) a))
- | otherwise = (a,0) --quando a == b
- --função auxiliar que retorna a soma incluindo os limites. Supõe que x < y
- ex3_1 :: Integer -> Integer -> Integer
- ex3_1 x y
- | x == y = x
- | x < y = x + (ex3_1 (x+1) y)
- --função auxiliar que retorna a soma excluindo o limite superior. Supõe que x < y
- ex3_2 :: Integer -> Integer -> Integer
- ex3_2 x y
- | x == y = 0
- | x < y = x + (ex3_2 (x+1) y)
- --Exercício 6 ERRADO
- ex6 :: Integer -> Integer -> Integer
- ex6 a b
- | (mod a num == 0) && (mod b num == 0) = num * (ex4 (a`div`num) (b`div`num))
- | (mod a num /= 0) && (mod b num /= 0) =
- let num = num + 1
- in ex6 a b
- | (mod a num /= 0) || (mod b num /= 0) = 1
- where num = 2
- main = do
- --print $ ex1 1 0 0
- print $ ex2 3 3 2.5
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement