2214 PRec Testes 2012-Final-GAB

14
ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais ========================================================== PCS 2214 - Fundamentos de Engenharia de Computação I Prof. Anarosa Alves Franco Brandão Prof. Anna Helena Reali Costa Prof. Ricardo Luis de Azevedo da Rocha Prof. Ricardo Nakamura Prova de Recuperação: 16 de Julho de 2012 GABARITO INSTRUÇÕES 1) Esta prova contém 16 (dezesseis) testes. Verifique atentamente se sua prova está completa. Em caso de dúvida, chame o professor. 2) Preencha o seu nome, o seu número USP e a sua turma na capa da prova e no espaço reservado para as respostas aos testes, no início da prova . Provas não identificadas não serão corrigidas. 3) O papel almaço pode ser utilizado como rascunho. 4) Os testes podem ser deixados em branco ou não. No caso de não deixar em branco, as respostas desejadas aos testes devem ser assinaladas com um X com caneta esferográfica preta ou azul , uma única resposta por teste (caso contrário, o teste será considerado errado). 5) Para cada três testes errados, um teste correto será anulado. 6) A duração total da prova é de 120 minutos . 7) É proibido o uso de calculadoras. 8) É proibido retirar o grampo da prova. 9) A interpretação das questões faz parte da avaliação dos alunos. 10) A prova é SEM CONSULTA . Boa sorte!

Transcript of 2214 PRec Testes 2012-Final-GAB

Page 1: 2214 PRec Testes 2012-Final-GAB

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO

Departamento de Engenharia de Computação e Sistemas Digitais ==========================================================

PCS 2214 - Fundamentos de Engenharia de Computação I

Prof. Anarosa Alves Franco Brandão Prof. Anna Helena Reali Costa

Prof. Ricardo Luis de Azevedo da Rocha Prof. Ricardo Nakamura

Prova de Recuperação: 16 de Julho de 2012

GABARITO

INSTRUÇÕES  

1) Esta prova contém 16 (dezesseis) testes. Verifique atentamente se sua prova está completa. Em caso de dúvida, chame o professor.

2) Preencha o seu nome, o seu número USP e a sua turma na capa da prova e no espaço reservado para as respostas aos testes, no início da prova. Provas não identificadas não serão corrigidas.

3) O papel almaço pode ser utilizado como rascunho.

4) Os testes podem ser deixados em branco ou não. No caso de não deixar em branco, as respostas desejadas aos testes devem ser assinaladas com um X com caneta esferográfica preta ou azul, uma única resposta por teste (caso contrário, o teste será considerado errado).

5) Para cada três testes errados, um teste correto será anulado.

6) A duração total da prova é de 120 minutos. 7) É proibido o uso de calculadoras.

8) É proibido retirar o grampo da prova. 9) A interpretação das questões faz parte da avaliação dos alunos.

10) A prova é SEM CONSULTA. Boa sorte!

Page 2: 2214 PRec Testes 2012-Final-GAB

PCS - 2214 Fundamentos de Engenharia de Computação I

Prova de Recuperação

16 de Julho de 2012

1. (0,625 pontos) Sejam as seguintes sentenças em lógica proposicional: h1: ¬p → q

h2: q → r

h3: s

Deseja-se provar que c1: r ∨ s é consequência lógica de h1, h2 e h3, utilizando regras de inferência. Assume-se que as sentenças h1, h2 e h3 podem ser também descritas em suas respectivas formas clausais. Assinale a alternativa correta:

a) É possível provar c1 por prova direta, utilizando apenas a regra da resolução. b) É possível provar c1 por prova direta, utilizando apenas a regra de Modus Ponens. c) Não é possível provar c1 por inferência, pois c1 não é consequência lógica de h1, h2 e

h3. d) Não é possível provar c1 por inferência, utilizando apenas adição e resolução, apesar

de c1 ser consequência lógica de h1, h2 e h3. e) Nenhuma das outras alternativas é correta.

2. (0,625 pontos) Com relação à Lógica de Predicados, assinale a alternativa correta:

a) ¬ ∀ x ( Maior (x , y) ) ≡ ∃ x (¬Maior (x, y) ). b) ¬ ∀x (Homem(x) → ¬Animal(x)) tem como consequência lógica que

Homem(Einstein) ∨ Animal(Einstein), onde Einstein é uma constante do domínio. c) Uma função de objetos gera sempre um valor lógico V ou F. d) Sentenças atômicas possuem conectivos. e) Nenhuma das outras alternativas é correta.

3. (0,625 pontos) Sejam os seguintes conjuntos: X={1,2,3,4}, Y={a,b,c,d}. Sejam ainda as seguintes relações:

R1={(1,a),(2,b),(3,c)} R2={(1,a),(2,b),(3,c),(4,c)} R3={(1,a),(2,b),(2,c), (3,d)}

Assinale a alternativa correta:

a) R1 é uma função. b) R2 é uma função injetora. c) R3 é uma função sobrejetora. d) R3 não é uma função. e) Nenhuma das outras alternativas é correta.

Page 3: 2214 PRec Testes 2012-Final-GAB

4. (0,625 pontos) Sejam os algoritmos a seguir:

1. ordena(A, n) { // A é um vetor de n números 2. for (i = 1; i <= n-1; i++){ 3. min = i 4. for (j = i + 1; j <= n; j++){ 5. if (A[j] < A[min]) 6. min = j 7. } 8. x = A[min] 9. A[min] = A[i] 10. A[i] = x 11. } 12. }

1. fun(n) { 2. if (n == 0 || n == 1) 3. return(1); 4. else return (fun(n – 1) - fun (n - 2) + n) 5. }

1. xx(n, a, b) { 2. if n == 1 3. return(1); 4. else return xx(n - 1, b, a + b) 5. }

Considere as afirmações a respeito da complexidade dos três algoritmos dados:

I) Os algoritmos fun e xx têm a mesma complexidade, ou seja, Θ(n), enquanto que o algoritmo ordena tem complexidade Θ(n2).

II) O algoritmo fun tem complexidade exponencial, mas o algoritmo xx tem complexidade Θ(n), enquanto que o algoritmo ordena tem complexidade Θ(n).

III) O algoritmo fun tem complexidade exponencial, mas o algoritmo xx tem complexidade Θ(n), enquanto que o algoritmo ordena tem complexidade Θ(n2).

Assinale a alternativa correta:

a) Apenas I e II são verdadeiras. b) Apenas II e III são verdadeiras. c) Apenas III é verdadeira. d) I, II e III são verdadeiras. e) Nenhuma das outras alternativas é correta.

5. (0,625 pontos) Considere um algoritmo que consiste em percorrer sequencialmente uma lista

de n números (não ordenados) a partir do início até encontrar o valor procurado ou atingir o final da lista. Selecione a sentença correta sobre a complexidade de tal algoritmo:

a) o tempo de pior caso do algoritmo é O(1) b) o tempo de melhor caso do algoritmo é O(1) c) o tempo de melhor caso do algoritmo é Ω(n) d) o tempo de caso médio do algoritmo é Θ(log2n) e) o tempo de pior caso do algoritmo é Ω(1)

Page 4: 2214 PRec Testes 2012-Final-GAB

6. (0,625 pontos) A solução de forma fechada da relação de recorrência fn = n · fn-1, com n>1 e f1=7, é:

a) 7·nn b) 7·n c) 7!·n d) (7·n)n e) 7·n!

7) (0,625 pontos) Considere um grafo completo, ponderado, não-direcionado, com n vértices e k arestas, sendo n > 3. Cada aresta tem um peso entre 1 e k, diferente do peso das demais. Assinale a alternativa correta relativa à aplicação do algoritmo de caminho mínimo de Dijkstra sobre esse grafo:

a) Para n=4, todo caminho mínimo entre dois vértices a e z terá a forma (a, z). b) Para n=5, não há caminhos mínimos passando por 5 vértices. c) Para n=6, todo caminho mínimo entre dois vértices terá comprimento ≤ 15. d) Para n=5, todo caminho mínimo entre dois vértices terá comprimento > 2. e) Todas as outras alternativas são incorretas.

8) (0,625 pontos) Considere as seguintes afirmações e assinale a alternativa correta: I) O grafo bipartido completo K2,3 possui um ciclo de Hamilton.

II) O grafo bipartido completo K2,4 possui um ciclo de Euler. III) Todo grafo completo Kn, n≥3 possui um ciclo de Hamilton.

a) Somente as afirmações I e II estão corretas. b) Somente as afirmações II e III estão corretas. c) Somente as afirmações I e III estão corretas. d) As afirmações I, II e III estão corretas. e) Somente a afirmação III está correta.

9 (0,625 pontos) Assinale a alternativa correta sobre o grafo a seguir:

a) O grafo é planar e possui 7 faces. b) O grafo não é planar, pois possui um subgrafo homeomorfo a K5. c) O grafo é planar e possui 9 faces. d) O grafo não é planar, pois possui um subgrafo homeomorfo a K3,3. e) O grafo é planar e possui 8 faces.

Page 5: 2214 PRec Testes 2012-Final-GAB

10. (0,625 pontos) Considere o algoritmo para geração de código de Huffman dado a seguir. A entrada A é uma lista de símbolos (a1,...an) a serem codificados, F é a lista de frequências (f1,...fn) de cada símbolo e n é o número de símbolos. As listas devem sempre ficar em ordem crescente de frequências.

Figura 1

huffman(A,F,n) { if (n == 2) { seja T uma árvore como na Figura 1 return(T) } sejam fr e fs, fr<fs, as menores frequências de F substituir os símbolos ar e as com fr e fs por um

novo símbolo (aras) com frequência fr + fs nas listas A e F, respectivamente

T’ = huffman(A,F,n-1) substituir o vértice em T’ rotulado (aras) por uma

árvore como a apresentada na Figura 2 para obter T

return(T) }

Figura 2

Assinale a sentença correta sobre o código de Huffman gerado para A = (k,w,x,y,z), F = (3,5,7,9,11), n = 5:

a) A codificação da cadeia xyzzy é 0010111110. b) A altura da árvore resultante é igual a 4. c) A codificação do símbolo w é 100. d) A decodificação da cadeia 010001011 é kxzy. e) Nenhuma das outras sentenças está correta.

11. (0,625 pontos) Considere o grafo K6, dado por V={a, b, c, d, e, f} e E={(a,b), (b,c), (c,d), (d,e), (e,f), (f,a), (a,c), (b,d), (c,e), (d,f), (e,a), (f,b), (a,d), (f,c), (b,e)}, com os seguintes pesos atribuídos às arestas: (a,b)=1, (b,c)=2, (c,d)=3, (d,e)=1, (e,f)=2, (f,a)=1, (a,c)=4, (b,d)=1, (c,e)=2, (d,f)=4, (e,a)=2, (f,b)=3, (a,d)=1, (f,c)=3, (b,e)=2. Considere as seguintes afirmações:

I. A Árvore Geradora de K6 encontrada pela busca em largura, seguindo a ordem alfabética de vertices na busca sempre que possível, resulta em grafo no qual um vértice tem grau 5 e 5 vértices têm grau 1. II. A Árvore Geradora de K6 encontrada pela busca em profundidade, seguindo a ordem alfabética de vertices na busca sempre que possível, resulta em grafo no qual todos os vértices têm grau 1.

III. A Árvore Geradora Mínima de K6 encontrada pelo Algoritmo de Prim possui E’={(a,b), (a,d), (a,f), (d,e), (b,c) }.

Assinale a alternativa correta: a) Apenas as afirmações I e II são corretas. b) Apenas a afirmação III é correta. c) Apenas as afirmações II e III são corretas. d) Apenas as afirmações I e III são corretas. e) Todas as afirmações são corretas.

Page 6: 2214 PRec Testes 2012-Final-GAB

12. (0,625 pontos) Considere a árvore de busca binária, sem repetição de palavras, construída a partir da sequência de palavras entre aspas dada na entrada: “A Matemática não mente. Mente quem faz mau uso dela.” (Einstein). Com relação à árvore construída, assinale a alternativa correta:

a) A árvore tem altura 4, com as palavras dela, mente e quem no seu nível 3. b) Em percurso pré-ordem, as quatro primeiras palavras a serem processadas seriam,

nesta ordem: A, Matemática, faz, não. c) Em percurso pós-ordem, as quatro primeiras palavras a serem processadas seriam,

nesta ordem: dela, faz, mau, não. d) Em percurso em ordem simétrica, as quatro primeiras palavras a serem processadas

seriam, nesta ordem: dela, faz, Matemática, mau. e) Nenhuma das outras alternativas é correta.

13. (0,625 pontos) Considere o Autômato Finito (AF) dado abaixo, onde a ponta de seta aponta para o estado inicial (q0) e q4 é o estado de aceitação.

Assinale a alternativa que apresenta corretamente uma expressão regular da linguagem que este AF representa:

a) 1 1* 0 1 b) (0 1 1) ∪ (1 1* 0 1) ∪ (0 0 1* 0 1) c) 1 1* 0 1 (1 1* 0 1)* d) (((0 0 ∪ 1) 1* 0 1) ∪ 0 1 1) (0 1* 0 1)* e) Nenhuma das outras é correta.

14. (0,625 pontos) Considere a linguagem L = { an bn cn | n ≥ 1} e a gramática G=(N, T, P, S) que gera L. Assinale a alternativa que indica corretamente o tipo desta linguagem e o conjunto P da gramática G:

a) L é livre de contexto e P={ S→aSBC, S→aBC, B→bB, C→cC, B→bC, C→c}. b) L é sensível ao contexto e P={ S→aSBC, S→aBC, B→bB, C→cC, B→b, C→c}. c) L é sensível ao contexto e P={ S→aSBC, S→aBC, CB→HB, HB→HC, HC→BC,

aB→ab, bB→bb, bC→bc, cC→cc}. d) L é livre de contexto e P={ S→aSBC, S→aBC, CB→HB, HB→HC, HC→BC,

aB→ab, bB→bb, bC→bc, cC→cc}. e) L é irrestrita e P={ S→aSBC, S→aBC, CB→HB, HB→BC, aB→ab, bB→bb,

AF

Page 7: 2214 PRec Testes 2012-Final-GAB

bC→bc, C→cc}.

15. (0,625 pontos) Considere o seguinte Autômato Finito Não Determinístico N (C é estado de aceitação e A é o estado inicial):

Considere o Autômato Finito Determinístico D equivalente a N definido pelo método dado em aula, eliminando os estados inatingíveis. Assinale a alternativa incorreta a respeito de D:

a) D possui 6 estados. b) D possui um total de 10 transições. c) Há 5 transições representadas por arestas em loop no grafo de N: 3 com entrada 0 e 2

com entrada 1. d) D possui 2 estados de aceitação. e) Há somente uma transição com entrada 0 transitando para o estado vazio (∅), além das

duas arestas em loop de ∅.

16. Considere a Máquina de Turing T dada a seguir, com I = {1, *} e Γ = {1, *, b, S} e de onde foram omitidas as transições para o estado de rejeição σR:

Assinale a alternativa correta:

a) Qualquer cadeia formada por 1 e * é aceita por T. b) T responde 111111 para a entrada 1111*1111. c) T responde o maior de dois números unários a e b dados na entrada na forma a*b. d) T responde com a soma de dois números unários a e b dados na entrada na forma a*b.

e) Nenhuma das outras alternativas é correta.

AFND N

Page 8: 2214 PRec Testes 2012-Final-GAB

NOME: _________________________________ NUSP: ______________ TURMA: ______

Respostas: marque com um X as alternativas selecionadas para as questões. Cada 3 (três) respostas erradas, uma questão correta será anulada.

Alternativa: Questão:

a b c d e

1 X

2 X

3 X

4 X

5 X

6 X

7 X

8 X

9 X

10 X

11 X

12 X

13 X

14 X

15 X

16 X

Page 9: 2214 PRec Testes 2012-Final-GAB

Métodos de percurso (todos): Entrada: PT, a raiz de uma árvore binária. Saída: depende de como o comando process é interpretado. Considere equivalente a print, sendo a saída a sequência de vértices visitados.

pre_ordem (PT) { if (PT está vazio) return process PT l = filho esquerdo de PT ordem_simetrica(l) r = filho direito de PT ordem_simetrica(r) }

ordem_simetrica (PT) { if (PT está vazio) return l = filho esquerdo de PT ordem_simetrica(l) process PT r = filho direito de PT ordem_simetrica(r) }

pos_ordem (PT) { if (PT está vazio) return l = filho esquerdo de PT pos_ordem(l) r = filho direito de PT pos_ordem(r) process PT }

(1) prim (w, n, s) { (2) for i = 1 to n { (3) v(i) = 0 } (4) v(s) = 1 (5) E = ∅ (6) for i = 1 to n – 1 { (7) min = ∞ (8) for j = 1 to n { (9) if (v(j) == 1) { (10) for k = 1 to n { (11) if (v(k) == 0 and w(j,k) < min) { (12) add_vertex=k; e=(j,k); min=w(j,k)}}}} (13) v(add_vertex) = 1 (14) E = E ∪ {e} (15) } (16) return (E) (17)} Busca em Largura Entrada: um grafo conexo G com vértices ordenados V={v1,v2,..vn} e conjunto de arestas E. Saída: uma árvore geradora T=(V’,E’), com raiz v1.

Busca em Profundidade Entrada: um grafo conexo G com vértices ordenados V={v1,v2,..vn} e conjunto de arestas E. Saída: uma árvore geradora T=(V’,E’), com raiz v1.

bfs (V, E) { V’={v1}; E’=∅; S=(v1); while true { for cada x ∈ S, em ordem, for cada y∈(V–V’), em ordem, if((x,y) é aresta em E) adicione (x,y) a E’ e y a V’ if (nenhuma aresta foi adicionada) return (T) S= filhos de S ordenados em consistência com a ordenação dos vértices original } // fim do while } // fim de bfs

dfs (V, E) { V’={v1}; E’=∅; w=v1 ; while true { while existe aresta (w,v) que não cria ciclo quando inserida em T { escolha a aresta (w,vk) com menor k que não cria ciclo quando inserida em T; adicione (w, vk) a E’; adicione vk a V’; w = vk ; } if (w == v1 ) return (T); w = pai de w em T //retrocesso } // fim do while true } // fim do dfs

(1) dijkstra(w, a, z, L) {

Page 10: 2214 PRec Testes 2012-Final-GAB

(2) L(a) = 0; (3) for all vértices x ≠ a (4) L(x) = ∞ ; (5) T = conj. de todos os vértices, ordenados; (6) while (z ∈ T) { (7) escolher v ∈ T com L(v) mínimo, na ordem; (8) T = T – {v} ; (9) for each x ∈ T adjacente a v (10) if (L(x) ≤ L(v)+w(v,x)) { (11) L(x) = L(v) + w(v,x); (12) P(x) = v; (13) } (11) } (12) }

Regras de Inferência Lógica:

Modus Ponens: (p → q), p / ∴ q

Modus Tollens: (p → q), ¬q / ∴ ¬p

Adição: p / ∴ p � q���

Simplificação: p � q /∴ p , p � q /∴ q

Conjunção: p, q / ∴ p � q

Silogismo Hipotético: (p → q) , (q → r) / ∴ (p → r)

Silogismo Disjuntivo: (p � q), ¬p / ∴ q

Resolução: (p � q), (¬p � r ) / ∴ (q � r )

Page 11: 2214 PRec Testes 2012-Final-GAB

GABARITO 1. Resposta:

a. INCORRETA Por prova direta usando resolução conclui-se apenas p∨r

b. INCORRETA Por prova direta usando Modus Ponens conclui-se apenas ¬ p→r

c. INCORRETA É possível provar usando resolução e adição

d. INCORRETA ver item anterior.

e. CORRETA ALTERNATIVA (e)

2. Resposta:

a. CORRETA b. INCORRETA

Por substituição x/Eisntein temos ¬ (Homem (Einstein) → ¬ Animal(Einstein) ) ≡ ¬ (¬Homen(Einstein) ∨ ¬Animal(Einstein)) ≡ Homen(Einstein) ∧Animal(Einstein)

c. INCORRETA Uma função deve gerar objeto. Ex: Pai(Aphrodite) gera Uranus

d. INCORRETA Uma sentença atômica é composta por um predicado, aplicado a um ou mais termos. Termos são expressões lógicas que se referem a um objeto. Fórmulas bem formadas serão compostas por predicados ligados através de conectivos lógicos.

e. INCORRETA

ALTERNATIVA (a)

3. Resposta: a. incorreta: R1 não e uma função pois 4 ∉ ao domínio de R1. b. incorreta: R2 não é uma função, pois d ∉ a imagem de R2. c. incorreta: R3 não é uma função, portanto não é uma função sobrejetora. d. correta: não é uma função pois R3(2)=b e R3(2)=c. e. incorreta: alternativa c é correta.

ALTERNATIVA (d)

Page 12: 2214 PRec Testes 2012-Final-GAB

4. Resposta: Conforme visto em sala a complexidade é dada pelo número de chamadas recursivas; em fun tem-se duas chamadas recursivas a cada passo de recursão, logo é exponencial porque a base é maior do que 1, mas xx tem (n-1) chamadas recursivas, para n > 1 e, portanto, T(n)=n-1, ou seja, T(n) é Θ(n). O algoritmo ordena tem complexidade Θ(n2), conforme visto em sala, ele é um algoritmo de ordenação muito simples. Resposta certa: ALTERNATIVA (c).

5. A partir da descrição do algoritmo, pode-se dizer que cada elemento da lista terá de ser comparado ao valor procurado. Assim, no pior caso serão inspecionados n elementos e no melhor caso será inspecionado apenas 1. Assim, T(n) = n para o pior caso (portanto Θ(n)), T(n) = 1 para melhor caso (portanto Θ(1)) e T(n) = n/2 para o caso médio (portanto Θ(n)), assumindo-se distribuição uniforme de probabilidade de se encontrar o valor procurado em cada posição da lista. Considerando-se as alternativas, a única coerente com esses fatos é a ALTERNATIVA (b).

6. A solução de forma fechada pode ser obtida por iteração: 7n!. Portanto, a resposta correta é a ALTERNATIVA (e).

7. Alternativa (a) incorreta: pode-se arranjar os pesos em um grafo K4 para se obter um caminho mínimo com 3 vértices. Alternativa (b) incorreta: para o grafo K5 teremos 10 arestas. Para termos um caminho com 5 vértices é preciso encontrar 5 números tais que a soma de 4 deles seja inferior ao valor do quinto. Considerando os menores e o maior número do intervalo, temos 1+2+3+4=10. Alternativa (c) correta: o grafo K6 tem 15 arestas, com pesos 1 a 15. Logo, o maior comprimento de caminho será 15. Alternativa (d) incorreta: pode-se ter um caminho mínimo com apenas a aresta com peso 1. Alternativa (e) incorreta pois a ALTERNATIVA (c) é correta.

8. Afirmação (I) incorreta (pode ser verificado graficamente); Afirmação (II) correta (verificável com teorema sobre ciclo de Euler); Afirmação (III) correta: Seja um grafo Kn com vértices v1..vn; o caminho com as arestas (v1,v2), (v2,v3), … (vn, v1) forma um ciclo de Hamilton. Portanto, ALTERNATIVA (b).

9. ALTERNATIVA (d) – preciso acrescentar figura realçando o subgrafo homeomorfo a K3,3.

10. ALTERNATIVA (b) – preciso acrescentar a figura da árvore gerada.

Page 13: 2214 PRec Testes 2012-Final-GAB

11. ALTERNATIVA (d) –

12. ALTERNATIVA (a)

13. Alternativa (d)

14. Alternativa (c). Exemplo de geração aabbcc: S ⇒ aSBC ⇒ aaBCBC ⇒ aaBHBC ⇒ aaBHCC ⇒ aaBBCC ⇒aabBCC ⇒ aabbCC ⇒ aabbcC ⇒ aabbcc

15. Alternativa (b). A AFD D correspondente está desenhado abaixo e possui 6 estados, dos quais 2 são de aceitação, 16 arestas representando transições, das quais 5 são loops:

Page 14: 2214 PRec Testes 2012-Final-GAB

16. Alternativa (d) – a máquina computa a soma de dois números dados em unário, sendo 0 ≡ 1, 1 ≡ 11, 2 ≡ 111, etc.