• Nenhum resultado encontrado

MAC0122 Princ´ıpios de Desenvolvimento de Algoritmos Bacharelado em Estat´ıstica, Matem´atica e Matem´atica Aplicada Primeira Prova – 1 de setembro de 2016 Nome: Assinatura: N

N/A
N/A
Protected

Academic year: 2022

Share "MAC0122 Princ´ıpios de Desenvolvimento de Algoritmos Bacharelado em Estat´ıstica, Matem´atica e Matem´atica Aplicada Primeira Prova – 1 de setembro de 2016 Nome: Assinatura: N"

Copied!
9
0
0

Texto

(1)

MAC0122 Princ´ıpios de Desenvolvimento de Algoritmos

Bacharelado em Estat´ıstica, Matem´ atica e Matem´ atica Aplicada Primeira Prova – 1 de setembro de 2016

Nome:

Assinatura:

N

o¯

USP: Prof:

Instru¸c˜oes:

1. N˜ao destaque as folhas deste caderno. A prova pode ser feita a l´apis.

2. A prova consta de 2 quest˜oes, cada uma com 2 itens. Verifique antes de come¸car a prova se o seu caderno est´a completo.

3. As quest˜oes podem ser resolvidas em qualquer p´agina. Ao escrever uma solu¸c˜ao (ou parte dela) em p´agina diferente do enunciado, escreva QUEST ˜AO X em letras ENORMES junto da solu¸c˜ao.

4. As solu¸c˜oes devem ser em Python. Vocˆe pode usar apenas recursos de Pythonvistos em aula.

Vocˆe pode definir fun¸c˜oes auxiliares e us´a-las `a vontade. Cuidado com a legibilidade e, principalmente, com a tabula¸c˜ao.

5. As solu¸c˜oes n˜ao precisam verificar consistˆencia de dados.

6. N˜ao ´e permitido o uso de folhas avulsas para rascunho, a consulta a livros, apontamentos, colegas ou equipamentos eletrˆonicos. Desligue o seu celular e qualquer equipamento que possa perturbar o andamento da prova.

DURAC ¸ ˜ AO DA PROVA: 2 horas

Quest˜ao Valor Nota

1(a) 2,5

1(b) 2,5

2(a) 2,5

2(b) 2,5

Total 10,0

(2)

Quest˜ao 1 (vale 5,0 pontos)

Est´a quest˜ao ´e composta de dois itens.

Item (a) (vale 2,5 pontos)

Escreva uma fun¸c˜ao recursivasome par impar recursiva() que respeite a especifica¸c˜ao a seguir.

def some_par_impar_recursiva(v, n):

'''(list, int) -> int, int

Recebe uma lista v de n´umeros inteiros e um inteiro n e retorna dois valores, a soma dos n´umeros pares e a soma dos n´umeros ´ımpares em v[0:n].

Exemplos:

>>> some_par_impar_recursiva([2,-5,7,12,15,7],2) 2, -5

>>> some_par_impar_recursiva([2,-5,7,12,15,7],3) 2, 2

>>> some_par_impar_recursiva([2,-5,7,12,15,7],4) 14, 2

>>> some_par_impar_recursiva([2,-5,7,12,15,7],6) 14, 24

'''

(3)
(4)

Item (b) (vale 2,5 pontos)

Escreva um programa (= fun¸c˜ao main()) que leia um inteiro n≥0 e uma sequˆencia den n´umeros inteiros e imprima a soma dos n´umeros pares e a soma dos n´umeros ´ımpares da sequˆencia.

O seu programadeve utilizar obrigatoriamentea fun¸c˜aosome par impar recursiva()do item (a).

Vocˆe pode utilizar a fun¸c˜ao do item (a) mesmo que n˜ao a tenha feito.

A seguir est´a um exemplo de execu¸c˜ao do programa:

Digite o n´umero de elementos da sequ^encia: 6 Digite o 1o. n´umero: 2

Digite o 2o. n´umero: -5 Digite o 3o. n´umero: 7 Digite o 4o. n´umero: 12 Digite o 5o. n´umero: 15 Digite o 6o. n´umero: 7

soma par = 14, soma ´ımpar = 24

(5)
(6)

Quest˜ao 2 (vale 5,0 pontos)

Nesta quest˜ao vocˆe escrever´a duas fun¸c˜oes que s˜ao simplifica¸c˜oes bem grandes de fun¸c˜oes que vocˆe fez para o seu EP3.

Em rela¸c˜ao a um texto, o dicion´ario dos t-gramas´e o dicion´ario em que aschaves s˜ao ost-gramas no texto e o valor associado a cada chave ´e o n´umero de ocorrˆencias dot-grama no texto.

As fun¸c˜oes a seguir manipular˜ao um dicion´ario dost-gramas implementado por uma lista contendo duas listas, a lista das chavese a correspondente lista dos valores. Assim, o dicion´ario vazio ´e [ [], [] ].

Por exemplo, o dicion´ario dos 2-gramas do texto"Teste ´e teste." ´e

[[' t', ' ´e', 'Te', 'e ', 'e.', 'es', 'st', 'te', '´e '], [1, 1, 1, 1, 1, 2, 2, 3, 1]]

Item (a) (vale 2,5 pontos)

Escreva uma fun¸c˜ao insira ordenado()que respeite a especifica¸c˜ao a seguir.

def insira_ordenado(tgram, dicio):

'''(str, dicio) -> None

Recebe um t-grama tgram e um dicion´ario dos t-gramas dicio.

Se tgram ´e uma chave no dicion´ario, ent~ao a fun¸c~ao incrementa o valor correspondente, em caso contr´ario, a chave tgram ´e inserida no dicion´ario com valor 1.

Importante: a fun¸c~ao deve manter as chaves do dicion´ario em em ordem "alfab´etica" crescente.

Exemplos:

>>> dicio = [['es', 'te'], [1, 1]]

>>> tgram = 'st'

>>> insira_ordenado(tgram,dicio) # insira 'st' no dicion´ario

>>> print(dicio)

[['es', 'st', 'te'], [1, 1, 1]]

>>> tgram = 'te'

>>> insira_ordenado(tgram,dicio) # insira 'te' no dicion´ario

>>> print(dicio)

[['es', 'st', 'te'], [1, 1, 2]]

>>> tgram = 'es'

>>> insira_ordenado(tgram,dicio) # insira 'es' no dicion´ario

>>> print(dicio)

[['es', 'st', 'te'], [2, 1, 2]]

'''

(7)
(8)

Item (b) (vale 2,5 pontos)

Escreva uma fun¸c˜ao monta t gramas()que respeite a especificada a seguir.

A sua fun¸c˜ao deve utilizar obrigatoriamente a fun¸c˜ao insira ordenado() do item (a). Vocˆe pode utilizar a fun¸c˜ao do item (a) mesmo que n˜ao a tenha feito.

def monta_t_gramas(t, texto):

'''(int, str) -> dicion´ario

Recebe um inteiro t e um string texto e cria e retorna o dicion´ario dos t-gramas do texto.

Exemplos:

>>> monta_t_gramas(1,"testes") [['e', 's', 't'], [2, 2, 2]]

>>> monta_t_gramas(2,"testes") [['es', 'st', 'te'], [2, 1, 2]]

>>> monta_t_gramas(2,"tesTes")

[['Te', 'es', 'sT', 'te'], [1, 2, 1, 1]]

>>> monta_t_gramas(2,"tEsTes")

[['Es', 'Te', 'es', 'sT', 'tE'], [1, 1, 1, 1, 1]]

>>> monta_t_gramas(2,"tes tes")

[[' t', 'es', 's ', 'te'], [1, 2, 1, 2]]

>>> monta_t_gramas(1,"banana") [['a', 'b', 'n'], [3, 1, 2]]

>>> monta_t_gramas(2,"banana") [['an', 'ba', 'na'], [2, 1, 2]]

>>> monta_t_gramas(3,"banana") [['ana', 'ban', 'nan'], [2, 1, 1]]

>>>

'''

(9)

Referências

Documentos relacionados

Demonstre o Teorema de Cayley-Hamilton: Cada matriz ´e um zero de seu polinˆomio carac-

´ E poss´ıvel tamb´em alterar o gasto estimado com cada item (o que far´a com que o total estimado do roteiro seja recalculado), al´em de avali´a-lo e indicar que j´a foi

• O participante entrou na p´agina de detalhes de um ponto tur´ıstico e n˜ao encontrou uma forma de adicion´a-lo a um roteiro;. • O usu´ario n˜ao encontrou a seta para mostrar

Essa ideia ocorreu de maneira muito semelhante em outros prot´otipos e est´a presente na vers˜ao final (durante a discuss˜ao decidimos que seria interessante mostrar tamb´em

Figura 3.1: Evolu¸c˜ ao do comportamento epidemiol´ ogico do Sarampo no Brasil com cobertura vacinal de 98.2% e com popula¸c˜ ao vari´ avel.. De forma an´ aloga, podemos verificar

CONCLUSÃO Este artigo centrou-se no complexo processo de entrevistar menores. Na verdade, uma boa ava- liação não só do menor, mas também de sua famí- lia, é essencial para

Após a discussão da relação entre texto e imagem, conclui-se que no discurso publicitário há encadeamento estrutural de signos verbais e não-verbais. O signo

No Teorema 2.2, demonstramos que toda aplica¸c˜ ao T : X −→ X, para X um espa¸co m´ etrico sem pontos isolados e T uma aplica¸c˜ ao cont´ınua, n˜ ao necessariamente linear,