Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2014
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. module Main where
  2.  
  3. -- | Função que calcula o perímetro de uma circunferência dado o seu raio
  4. perimetro :: Float -> Float
  5. perimetro r = 2*pi*r
  6.  
  7. -- | Função que calcula a distância entre dois pontos de um plano
  8. dist :: ((Float,Float),(Float,Float)) -> Float
  9. dist ((a,b),(c,d)) = sqrt ((c-a)^2+(d-b)^2)
  10.  
  11. -- | Função que recebe uma lista e devolve um par com o primeiro e último elementos dessa lista
  12. primUlt :: [a] -> (a,a)
  13. primUlt l = (head l, last l)
  14.  
  15. -- | Função que testa se um número inteiro é múltiplo de outro
  16. multiplo :: (Int,Int) -> Bool
  17. multiplo (n,m) = (mod n m == 0)
  18.  
  19. -- | Função que recebe dois números inteiros e calcula o maior dos dois
  20. max2 :: Int -> Int -> Int
  21. max2 a b = if (a>b) then a else b
  22.  
  23. -- | Função que recebe três números inteiros e calcula o maior dos três
  24. max3 :: Int -> Int -> Int -> Int
  25. max3 a b c = if (a>b) then if (a>c) then a else if (b>c) then b else c
  26.  
  27. -- | Função que, dado um número inteiro, calcula o menor número ímpar maior que o número dado
  28. proxImpar :: Int -> Int
  29. proxImpar x = if (mod x 2 == 0) then (x+1) else (x+2)
  30.  
  31. -- | Função que recebe três comprimentos e verifica se é possivel formar um triângulo com lados dos comprimentos dados
  32. eTriangulo :: Float -> Float -> Float -> Bool
  33. eTriangulo x y z = (x+y>=z) && (x+z>=y) && (y+z>=x)
  34.  
  35. type Ponto = (Float,Float)
  36.  
  37. -- | Função que, recorrendo à função 'dist', calcula os comprimentos dos lados de um triângulo, dadas as coordenadas dos vértices
  38. lados :: Ponto -> Ponto -> Ponto -> (Float,Float)
  39. lados p1 p2 p3 = (dist p1 p2, dist p2 p3, dist p1 p3)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement