Horário de Atendimento

  • Em qualquer altura: via correio electrónico pressionando aqui. Qualquer outro meio de contacto será considerado informal, não se sentindo a equipa docente vinculada a dar uma resposta em tempo útil.

  • Durante o período de aulas: de acordo com o horário seguinte, sujeito a marcação verbal ou por email, com um mínimo de uma semana de antecedência, junto do respectivo docente:

Dia Hora Cursos Docentedown
2.ª-feira 13h00-15h00 MiEI O.M. Pacheco
6.ª-feira 14h00-15h00 MiEI O.M. Pacheco
3.ª-feira 15h00-16h00 MiEI/LCC J.N. Oliveira
3.ª-feira 18h00-20h00 MiEI/LCC J.N. Oliveira
5.ª-feira 18h00-20h00 MiEI/LCC J.N. Oliveira
4.ª-feira 16h00-17h00 MiEI/LCC J.M. Cunha
5.ª-feira 16h00-17h00 MiEI/LCC J.M. Cunha
4.ª-feira 16h00-18h00 MiEI H. Pacheco

Atendimento electrónico (FAQs) tinynew.gif

Q01 - Na questão 9 da ficha 4, não percebo o condicional p -> f, g . h. Não devia ser (p -> f,g). h?

R: Devia! Faltam os parênteses - gralha entretanto corrigida na nova versão dessa ficha.


Q02 - Estou a ter problemas ao correr o ficheiro cp1718t.lhs. O erro é o seguinte: "Could not find module ‘Data.Matrix’".

R: Isso significa que o módulo Data.Matrix não está instalado na sua máquina. Use cabal install (tal como se refere no enunciado) para o instalar.


Q03 - Não percebo o que faz a função depthQTree: para toda e qualquer QTree passada à função, esta devolve 0...

R: Há uma gralha: na definição da função (linha 1294) substituam maximum [a,b,c,d] por 1 + maximum [a,b,c,d] - relacionar com a questão 5 da ficha nrº 10. Já agora, como provariam que a função, tal como está, é a função constante 0?


Q04 tinynew.gif - No problema 3, não percebo o que está a fazer o 'n' em 's (d+1) = s n + 1'.

R: Trata-se infelizmente de outra gralha: no ficheiro lhs (linha 663) substituam n por d.


Q05 tinynew.gif - No problema 2, a função 'compressQTree :: Int -> QTree a -> QTree a' é mesmo polimórfica em 'a'?_

R: Sim, a implementação deverá ser polimórfica em 'a'.


Q06 - Faço o que diz o enunciado para instalar 'lhs2tex', cabal install lhs2tex, corre tudo bem, mas continuo sem ´lhs2tex', e.g. lhs2tex cp1718t.lhs > cp1718t.tex dá erro. (Isto em MAC OS.)

R: Se tudo correu bem na instalação, deverá existir o ficheiro executável Library/Haskell/bin/lhs2tex. O que está a faltar é o "link" para esse ficheiro. Uma maneira simples de o fazer é definir, na shell,

alias lhs2tex='/Users/user/Library/Haskell/bin/lhs2tex'

onde user é o nome do utilizador. Para não terem que fazer isso sempre, acrescentem essa linha ao ficheiro .bashrc, que já deve existir na directoria principal de user. (Este ficheiro é executado sempre que criam uma shell ou abrem um terminal.)


Q07 - Em Linux, cabal install JuicyPixels dá erro de instalação indicando que zlib-0.6.2 não foi instalada. Que fazer?

R: Basta correr o comando sudo apt-get install libz-dev em Linux e fica a funcionar. (Agradeçam ao vosso colega Pedro Mimoso Silva esta informação.)


Q08 - Estive a fazer testes unitários da minha solução do problema 3 do TP e aparentemente obtenho resultados correctos; no entanto, ao testar com o Quickcheck, a minha solução falha. Não consigo perceber onde está o erro...

R: O problema é que, como vem no enunciado, a solução calculada assume n < k, e o QuickCheck não sabe disso. Sugere-se o seguinte: no enunciado, onde aparece a prop3, substituam-na pela versão seguinte:

prop3 (NonNegative n) (NonNegative k) = k <= n ==> (bin n k) == (fac n) % (fac k * (fac ((n-k))))


Q09 tinynew.gif - Ao tentar correr a função animatePTree obtenho sempre este erro " ***Exception: user error (unknown GLUT entry glutInit)". Há alguma sujestão de como o resolver?

R: É conhecido que chamar o gloss dentro do ghci pode ter problemas. Para os resolver, basta invocar ghci com o argumento -fno-ghci-sandbox, ou compilar com o ghc. No segundo caso, definam uma função main = ... que chame a animação que querem fazer. Quando correrem, na shell, ./cp1718t, será essa função que será activada.


-- JoseNunoOliveira - 06 Mar 2018