Projecto 1

  • É necessário validar os argumentos das funções?
    A validação da correcção dos argumentos de uma função só é necessária quando é explicitamente pedida no enunciado. Assim, para as funções em que é claramente dito que os argumentos são inteiros positivos não será necessário validar se são strings, booleanos ou de outro tipo.
     
  • 1 é um número primo?
    Por definição, o número 1 não é primo, não pode considerá-lo como sendo.
     
  • A minha mensagem de erro aparece com uma vírgula e parêntesis...
    A função ValueError imprime uma sequência de mensagens, separadas por vírgulas. Assim, de modo a enviar apenas uma cadeia de caracteres a representar toda a mensagem, deve criar-se uma única cadeia de caracteres como mensagem de erro. Por exemplo, poderá fazer:

    raise ValueError ('encripta: a mensagem tem de ser inferior a ' + str(m))
     
  • Qual a melhor forma de colocar os comentários no meu código?
    Existem dois tipos de comentários em Python. As docstrings devem ser usadas para documentar a função, sendo essa documentação exportada para além da listagem do programa, como por exemplo uma página html de ajuda sobre as funções. Assim, recomenda-se que sejam usadas para descrever a assinatura da função e uma explicação sucinta do seu funcionamento.

    Considere por exemplo a função MDC para calcular o máximo divisor comum entre dois inteiros positivos. A sua docstring seria qualquer coisa como:

    ''' MDX: int x int -> int
        MDX(x, y) devolve o máximo divisor comum entre os números x e y.'''


    Os comentários em Python, iniciados com o carácter '#', devem ser usados nas restantes situações. Note que apenas as instruções, cuja finalidade não é clara necessitam de comentários.

Projecto 2

  • A solução do projeto pode usar classes?
    A solução NÃO pode incluir classes.
     
  • As grelhas admitem palavras repetidas?
    Não.

  • Podem existir grelhas e/ou palavras com letras minúsculas?
    Sim. Tanto a grelha como as palavras podem apresentar-se com qualquer tipo de letra (maiúsculas ou minúsculas).

  • O que é necessário para uma coordenada ser válida?
    O TAI coordenada é independente da grelha. As validações da coordenada face à grelha deverão ser feitas aquando da invocação do método para aceder à grelha dada uma coordenada (grelha_elemento).

  • O que devolve a função grelha_linha?
    A função devolve a linha na direção dada que passa pela coordenada dada, desde a primeira até à última linha e coluna em que está definida. Assim a linha devolvida por grelha_linha(coordenada(x,y,d)) é igual à devolvida por grelha_linha(coordenada(x,y,direcao_oposta(d))) (mas pela ordem inversa).

  • O que devolve a função procura_palavras_numa_direcao?
    A função devolve todas as palavras encontradas no conjunto de linhas segundo a direcao dada. Como as linhas são a mesma para uma direcao d e a sua oposta, a função pode devolver as palavras encontradas numa direcao e na sua oposta. É também aceite a versão em que devolve apenas as palavras encontradas na direção dada.

  • Como se usa a janela de interação?
    A janela de interação tem de ser invocada dentro da função sopa_letras, sendo chamada com o nome do ficheiro com que a sopa_letras foi chamada, e apresentando o resultado encontrado pelo programa desenvolvido, formatado como uma resposta.

  • O que recebe a função grelha?
    A função grelha deve receber obrigatoriamente as linhas referentes ao puzzle, já pré-tratadas (linhas do mesmo tamanho e com as letras transformadas para maiúsculas).

  • O que faz a função sopa_letras?
    A função sopa_letras é a função que lê o puzzle através presente no ficheiro cujo nome recebe como parâmetro, que cria a grelha, que procura as palavras e que cria a resposta com as coordenadas das palavras encontradas. Por último lança a janela e mostra a resposta encontrada na mesma janela.

  • Como funciona o respostas_iguais?
    O resposta_iguais devolve verdadeiro apenas se as respostas têm o mesmo conteúdo por qualquer ordem.