sexta-feira, 25 de novembro de 2011

Teste 3 ( Turma 8)

Pergunta 1

Espaço de nomes é o local da memória onde ficam os nomes que foram associados a objectos através de instruções de atribuição existentes no código. Espaço dos objectos é o local onde se encontra a descrição dos objectos, nomeadamente o seu valor e o seu tipo. A identidade é um atributo dos objectos e indica o local da memória onde este se encontra. A relação entre ambos é feita através da identidade do objecto que fica a ser conhecida do nome.

Pergunta 2

Os erros eram dois. Primeiro, a variável res não era inicializada. Em segundo, o range devia ter como argumentos 1 e len(x)+1.

Eis o programa correcto.

def inverte(x):
res = [] # <-- retira = problema
for i in range(1,len(x)+1): # <-- range(len(x)) = problema
res.append(x[-i])
return res

Olhando para as operações sobre o objecto, nomeadamente o método append temos que ter uma lista para o resultado, embora para x possa ser qualquer objecto em que a operação de indexação exista: sequências (cadeias de caracteres, tuplos, listas) e dicionários.

Pergunta 3

Esta pergunta é parecida com várias que foram feitas com as árvores genealógicas, mais concretamente a que pedia a implementação da função avo.

def caminho_2(grafo, x, y):
suc_x = grafo[x]
for vert in suc_x:
if y in grafo.get(vert):
return True
return False

Basicamente, vamos buscar a lista dos vértices adjacentes do primeiro vértice (x). Depois procuramos saber se algum deles tem como vértice adjacente o segundo (y).

That’s it!

Sem comentários:

Enviar um comentário