Buscar

P1 2009 - Claudio Esperança

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmos e Programação - 1a Prova - 2009
1. (2 pontos) Considere o programa abaixo. O que ele imprime? Descreva o que computa a
função f() em geral?
def f(l,x,q):
if l==[]: return l
h = f(l[1:],x,not q)
if l[0]==x and q: return h
return l[:1]+h
print f([1,2,3,1,2,3,1,2,3],1,True)
print f([1,2,3,1,2,3,1,2,3],1,False)
2. (3 pontos) Escreva a função eliminaLinhaColuna (m,lin,col) que retorna uma có-
pia da matriz m sem a linha lin e a coluna col. Por exemplo, eliminaLinhaColuna
([[1,2,3],[4,5,6],[7,8,9]],1,1) retorna [[1,3],[7,9]].
3. (2 pontos) Considere o programa abaixo. O que ele imprime?
def f(d,i,j):
d[i+1,j]=d[i,j+1]=d[i,j]+1
def g(d):
for i,j in d.keys(): f(d,i,j)
return d
print g(g({(1,1):1}))
print len(g(g(g({(1,1):1}))).keys())
4. (3 pontos) Escreva a função maiorFreq(txt), que retorna uma tupla da forma (c, f ) onde
c é o caractere alfabético mais frequente na string txt e f é sua frequencia. Caracteres
maiúsculos e minúsculos são considerados equivalentes e caracteres acentuados ou não
alfabéticos não devem ser considerados. Por exemplo,
maiorFreq ("Em terra de cego, quem tem um olho e caolho")
retorna (’e’, 7).
Dicas:
(a) use um dicionário;
(b) o método lower() de strings retorna a string com caracteres maiúsculos converti-
dos em minúsculos.

Outros materiais