Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Exercício 1
- raizes :: Float -> Float -> Float -> (Float,Float)
- raizes 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
- maioresMedia :: Float -> Float -> Float -> Int
- maioresMedia 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
- somaIntervalo :: Int -> Int -> (Int,Int)
- somaIntervalo 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 :: Int -> Int -> Int
- 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 :: Int -> Int -> Int
- ex3_2 x y
- | x == y = 0
- | x < y = x + (ex3_2 (x+1) y)
- --Exercício 4 (MMC)
- mmc :: Int -> Int -> Int
- mmc a b
- | a == 0 || b == 0 = error "tentativa de mmc com zero"
- |(a == b) = a --se a e b forem iguais, não é preciso fazer contas,o MMC entre eles são eles mesmos
- |otherwise = ex4_1 a b 2
- --função auxiliar que realiza divisões e multiplica o divisor de cada iteração recursivamente, e incrementa o divisor quando nem a nem b são divisíveis por ele
- ex4_1 :: Int -> Int -> Int -> Int
- ex4_1 a b divisor
- |(a == 1) && (b == 1) = 1
- |(mod a divisor /= 0) && (mod b divisor /= 0) = ex4_1 a b (divisor+1)
- |(mod a divisor == 0) && (mod b divisor == 0) = divisor * ex4_1 (a`div`divisor) (b`div`divisor) divisor
- |(mod a divisor == 0) && (mod b divisor /= 0) = divisor * ex4_1 (a`div`divisor) b divisor
- |(mod a divisor /= 0) && (mod b divisor == 0) = divisor * ex4_1 a (b`div`divisor) divisor
- --Exercício 5
- mmcList :: [Int] -> Int
- mmcList (h:t)
- |t /= [] = mmc h (mmcList t)
- |otherwise = h
- main = do
- print "a"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement