Advertisement
Guest User

tc-CC-gabrielpalaoro-atiliodadalto.hs

a guest
Jun 21st, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. {- Integrantes: Gabriel Mengavel Gomes Palaoro e Atílio Antônio Dadalto
  2.    Data:
  3.    Gerenciamento de portos  
  4. -}
  5.  
  6. {-
  7. listaNavios = [(1,5,16,30), (2,6,18,30), (3,3,12,50), (4,4,22,50), (5,11,20,80)]
  8. listaBercos = [(1,4,20), (2,3,18)]
  9.  
  10. naviosAlocadosBerco1 = ((1,4,20), [(4,4,22,50), (5,11,20,80)])
  11. naviosAlocadosBerco2 = ((2,3,18), [(3,3,12,50), (1,5,16,30)])
  12. naviosAlocadosBerco = [naviosAlocadosBerco1, naviosAlocadosBerco2]
  13. -}
  14.  
  15. import TuplasPorto
  16. import Data.List
  17.  
  18. listaNavios = [(1,5,16,30), (2,6,18,30), (3,3,12,50), (4,4,22,50), (5,11,20,80)]
  19. listaBercos = [(1,4,20), (2,3,18)]
  20. infoPorto = [[1, 6, 4, 4, 6], [2, 0, 1, 0, 5]]
  21. naviosAlocadosBerco1 = ((1,4,20), [(4,4,22,50), (5,11,20,80)])
  22. naviosAlocadosBerco2 = ((2,3,18), [(3,3,12,50), (1,5,16,30)])
  23. naviosAlocadosBerco = [naviosAlocadosBerco1, naviosAlocadosBerco2]
  24.  
  25. tempoNavio navio berco infoPorto = (infoPorto!!(idBerco berco)!!(idNavio navio))
  26. tempoBerco berco = fech berco - abert berco
  27.  
  28. -- 1.
  29. atendido navio berco infoPorto = if chegada(navio) >= abert(berco) && tempoNavio navio berco infoPorto <= tempoBerco berco
  30.                 then True
  31.                 else False
  32.  
  33.  
  34. -- 2.
  35. filaNavios listaNavios = sortOn chegada listaNavios
  36.        
  37.        
  38. -- 3.
  39. tempoOcioso berco naviosAlocadosBerco1 infoPorto = tempoBerco berco - (snd(naviosAlocadosBerco1))!![0..((length xs)-1)]]
  40.  
  41. -- > tempoOcioso (1, 4, 20) naviosAlocadosBerco1
  42. -- Resposta: 6
  43. {-
  44. tempoOcioso navio berco naviosAlocadosBercoX infoPorto = (tempoBerco berco - tempoNavio naviosAlocadosBerco1 navio infoPorto)
  45.  
  46. temposNavios berco naviosAlocadosBerco = map tempoNavio(snd(naviosAlocadosBerco!!idBerco(berco)))
  47. -}
  48. {- tempo disponível do berço - tempo de todos os navios
  49. 1: tempoBerco
  50. 2: buscar navios alocados no berco X.
  51. 3: buscar tempo de cada um.
  52. 4: subtrair tempo disponível do resultado.
  53. -}
  54. {-- deus.hs -- 2.
  55. --filaNavios listaNavios = sort [chegada()]
  56. tx listaNavios = if null tail listaNavios
  57.                  then chegada head listaNavios
  58.                  else [chegada head listaNavios, tx (tail listaNavios)]
  59. -- lk xs = [ xs!!p | p <- [0..((length xs)-1)]]
  60.  
  61. --filaNaviosInverter = trocaChegadaLista filaNaviosInvertida
  62. filaNavios listaNavios = (trocaChegadaLista listaNavios)
  63. trocaChegadaLista listaNavios = map trocaChegada listaNavios
  64. -}
  65.  
  66. -- Módulo TuplasPorto.hs
  67. {- Integrantes: Gabriel Mengavel Gomes Palaoro e Atílio Antônio Dadalto
  68.    Data:
  69.    Gerenciamento de portos
  70.    Módulo para manipulação das tuplas do porto
  71. -}
  72.  
  73. module TuplasPorto
  74. ( idNavio
  75. , chegada
  76. , saida
  77. , quantidade
  78. , idBerco
  79. , abert
  80. , fech
  81. , trocaChegada
  82. ) where
  83.  
  84. -- manipular tuplas de navios
  85. -- idNavio :: (Int, Int, Int, Int) -> Int
  86. idNavio (a, b, c, d) = a
  87.  
  88. -- chegada :: (Int, Int, Int, Int) -> Int
  89. chegada (a, b, c, d) = b
  90.  
  91. -- saida :: (Int, Int, Int, Int) -> Int
  92. saida (a, b, c, d) = c
  93.  
  94. -- quantidade :: (Int, Int, Int, Int) -> Int
  95. quantidade (a, b, c, d) = d
  96.  
  97. -- trocaChegada :: (Int, Int, Int, Int) -> (Int, Int, Int, Int)
  98. trocaChegada (a, b, c, d) = (b, a, c, d)
  99.  
  100. -- manipular tuplas de berços
  101. -- idBerco :: (Int, Int, Int) -> Int
  102. idBerco(a, b, c) = a
  103.  
  104. -- abert :: (Int, Int, Int) -> Int
  105. abert(a, b, c) = b
  106.  
  107. -- fech :: (Int, Int, Int) -> Int
  108. fech(a, b, c) = c
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement