Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {- Integrantes: Gabriel Mengavel Gomes Palaoro e Atílio Antônio Dadalto
- Data:
- Gerenciamento de portos
- -}
- {-
- listaNavios = [(1,5,16,30), (2,6,18,30), (3,3,12,50), (4,4,22,50), (5,11,20,80)]
- listaBercos = [(1,4,20), (2,3,18)]
- naviosAlocadosBerco1 = ((1,4,20), [(4,4,22,50), (5,11,20,80)])
- naviosAlocadosBerco2 = ((2,3,18), [(3,3,12,50), (1,5,16,30)])
- naviosAlocadosBerco = [naviosAlocadosBerco1, naviosAlocadosBerco2]
- -}
- import TuplasPorto
- import Data.List
- listaNavios = [(1,5,16,30), (2,6,18,30), (3,3,12,50), (4,4,22,50), (5,11,20,80)]
- listaBercos = [(1,4,20), (2,3,18)]
- infoPorto = [[1, 6, 4, 4, 6], [2, 0, 1, 0, 5]]
- naviosAlocadosBerco1 = ((1,4,20), [(4,4,22,50), (5,11,20,80)])
- naviosAlocadosBerco2 = ((2,3,18), [(3,3,12,50), (1,5,16,30)])
- naviosAlocadosBerco = [naviosAlocadosBerco1, naviosAlocadosBerco2]
- tempoNavio navio berco infoPorto = (infoPorto!!(idBerco berco)!!(idNavio navio))
- tempoBerco berco = fech berco - abert berco
- -- 1.
- atendido navio berco infoPorto = if chegada(navio) >= abert(berco) && tempoNavio navio berco infoPorto <= tempoBerco berco
- then True
- else False
- -- 2.
- filaNavios listaNavios = sortOn chegada listaNavios
- -- 3.
- tempoOcioso berco naviosAlocadosBerco1 infoPorto = tempoBerco berco - (snd(naviosAlocadosBerco1))!![0..((length xs)-1)]]
- -- > tempoOcioso (1, 4, 20) naviosAlocadosBerco1
- -- Resposta: 6
- {-
- tempoOcioso navio berco naviosAlocadosBercoX infoPorto = (tempoBerco berco - tempoNavio naviosAlocadosBerco1 navio infoPorto)
- temposNavios berco naviosAlocadosBerco = map tempoNavio(snd(naviosAlocadosBerco!!idBerco(berco)))
- -}
- {- tempo disponível do berço - tempo de todos os navios
- 1: tempoBerco
- 2: buscar navios alocados no berco X.
- 3: buscar tempo de cada um.
- 4: subtrair tempo disponível do resultado.
- -}
- {-- deus.hs -- 2.
- --filaNavios listaNavios = sort [chegada()]
- tx listaNavios = if null tail listaNavios
- then chegada head listaNavios
- else [chegada head listaNavios, tx (tail listaNavios)]
- -- lk xs = [ xs!!p | p <- [0..((length xs)-1)]]
- --filaNaviosInverter = trocaChegadaLista filaNaviosInvertida
- filaNavios listaNavios = (trocaChegadaLista listaNavios)
- trocaChegadaLista listaNavios = map trocaChegada listaNavios
- -}
- -- Módulo TuplasPorto.hs
- {- Integrantes: Gabriel Mengavel Gomes Palaoro e Atílio Antônio Dadalto
- Data:
- Gerenciamento de portos
- Módulo para manipulação das tuplas do porto
- -}
- module TuplasPorto
- ( idNavio
- , chegada
- , saida
- , quantidade
- , idBerco
- , abert
- , fech
- , trocaChegada
- ) where
- -- manipular tuplas de navios
- -- idNavio :: (Int, Int, Int, Int) -> Int
- idNavio (a, b, c, d) = a
- -- chegada :: (Int, Int, Int, Int) -> Int
- chegada (a, b, c, d) = b
- -- saida :: (Int, Int, Int, Int) -> Int
- saida (a, b, c, d) = c
- -- quantidade :: (Int, Int, Int, Int) -> Int
- quantidade (a, b, c, d) = d
- -- trocaChegada :: (Int, Int, Int, Int) -> (Int, Int, Int, Int)
- trocaChegada (a, b, c, d) = (b, a, c, d)
- -- manipular tuplas de berços
- -- idBerco :: (Int, Int, Int) -> Int
- idBerco(a, b, c) = a
- -- abert :: (Int, Int, Int) -> Int
- abert(a, b, c) = b
- -- fech :: (Int, Int, Int) -> Int
- fech(a, b, c) = c
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement