Baixe o app para aproveitar ainda mais
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.
Compartilhar