Diga o que são objectos mutáveis e exemplifique.
Resposta: São objectos que podem ter o seu valor alterado sem alterar a sua identidade. As listas são um exemplo.
b) Analise a listagem seguinte e diga, justificando, o que vai aparecer no lugar dos pontos de interrogação.
>>> x_2 = ([1,2,3],[4,5,6]) >>> x_2[0][1] = 'b' >>> x_2 ??? --> ([1,'b',3],[4,5,6]) >>> x_2[0] = (7,8,9) ??? --> Dá erro de atribuição. Não se pode alterar, por atribuição, o valor de um tuploPergunta 2
Pretendia-se obter o valor aproximado da função geo(r) igual ao somatório com i a variar de 0 até infinito de 1/(r^i). Valorizava-se a consideração da precisão.
Versão sem precisão (soma de n termos):
def geo(r,n):
res = 0
for i in range(n):
res += 1/pow(r,i)
return res
Agora uma versão com a precisão a ser definida.
def geo_b(r,prec):
erro = 1
res = 0
n = 0
while erro > prec:
aux = res
res += 1/pow(r,n)
erro = abs(aux - res)
n += 1
return res
Esta solução funciona com base na consideração da diferença de dois valores consecutivos. Para este tipo de séries infinitas isso não causa problema. Podemos mesmo usar outra solução:
def geo_c(r,prec):
i = 1
termo = res = 1
while termo > prec:
termo = 1/pow(r,i)
res += termo
i += 1
return res
Pergunta 3Pedia-se para transformar uma imagem a preto e branco, representada por uma lista de listas de uns (preto) e zeros (branco), na sua imagem no espelho, sem destruir a imagem original. Uma pequena reflexão diz-nos que é suficiente inverter a imagem, linha a linha.
def espelho(imagem):
nova_imagem = []
for linha in imagem:
nova_linha = linha[:]
nova_linha.reverse()
nova_imagem.append(nova_linha)
return nova_imagem

Sem comentários:
Enviar um comentário