gabaritoprovaescritappgca07122011

11
QUESTÕES DE COMPUTAÇÃO Nas questões (1) e (2), os conectivos lógicos “não”, “e”, “ou” e “implica” são representados por ¬, , ,→, respectivamente. 1) Considerando a forma normal conjuntiva (FNC) e a forma normal disjuntiva (FND) na lógica proposicional clássica, avalie as afirmações a seguir: I) A fórmula ¬pr está na FNC e na FND. II) A fórmula ¬p (rq) está na FNC. III) Uma fórmula na FNC é uma conjunção de cláusulas. IV) Uma fórmula na FND é uma disjunção dual de cláusulas. V) Uma cláusula é uma conjunção de literais. VI) A fórmula (¬pqr) ( ¬qt) ( ¬rsa) está na FNC. VII) Para toda fórmula da lógica proposicional clássica A, existe uma fórmula B na FND que é equivalente a A. É correto apenas o que se afirma em: a) I, II, III, V e VI. b) I, II, III e VII. c) I, II, V, VI e VII. d) I, II, III, VI e VII. e) I, III, IV, V e VI. 2) A proposição ¬ (P Q) → (¬Q P), assumindo que a sequência de valores de P é {V,V,F,F} e a de Q é {V,F,V,F}, tem os valores: a) {F,F,F,F} b) {V,V,V,V} c) {F,F,V,V} d) {V,V,F,V} e) {V,F,V,F} 3) Assinale a alternativa que apresenta uma afirmação CORRETA relacionada a especificação e verificação formal de hardware e software: a) A especificação formal de um sistema de software é um documento que descreve, numa linguagem formal, a arquitetura da implementação deste software. b) Quando um software é verificado formalmente, produz-se uma prova de que não existe nenhum bug nele. c) Sistemas críticos que envolvem, por exemplo, a saúde de seres humanos, não devem ser especificados e verificados formalmente. Tais sistemas exigem um processo de especificação e verificação apenas informal. d) A verificação formal pode ser útil em demonstrar a correção, em relação à especificação, de sistemas tais como: protocolos de criptografia, circuitos digitais com memória interna e software expresso como código-fonte. e) Para que um sistema (seja de hardware ou de software) seja especificado formalmente, é necessário antes verificá-lo formalmente.

Upload: dlvcpe

Post on 08-Feb-2016

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GabaritoProvaEscritaPPGCA07122011

QUESTÕES DE COMPUTAÇÃO

Nas questões (1) e (2), os conectivos lógicos “não”, “e”, “ou” e “implica” são representados por ¬, , ∨,→, respectivamente.

1) Considerando a forma normal conjuntiva (FNC) e a forma normal disjuntiva (FND) na lógica proposicional clássica, avalie as afirmações a seguir:

I) A fórmula ¬p∨r está na FNC e na FND.II) A fórmula ¬p (r∨q) está na FNC.III) Uma fórmula na FNC é uma conjunção de cláusulas.IV) Uma fórmula na FND é uma disjunção dual de cláusulas.V) Uma cláusula é uma conjunção de literais.VI) A fórmula (¬p∨q∨r) ( ¬q∨t) ( ¬r∨s∨a) está na FNC.VII) Para toda fórmula da lógica proposicional clássica A, existe uma fórmula B na FND que é equivalente a A.

É correto apenas o que se afirma em:a) I, II, III, V e VI.b) I, II, III e VII.c) I, II, V, VI e VII.d) I, II, III, VI e VII.e) I, III, IV, V e VI.

2) A proposição ¬ (P Q) → (¬Q ∨ P), assumindo que a sequência de valores de P é {V,V,F,F} e a de Q é {V,F,V,F}, tem os valores:

a) {F,F,F,F}b) {V,V,V,V}c) {F,F,V,V}d) {V,V,F,V}e) {V,F,V,F}

3) Assinale a alternativa que apresenta uma afirmação CORRETA relacionada a especificação e verificação formal de hardware e software:

a) A especificação formal de um sistema de software é um documento que descreve, numa linguagem formal, a arquitetura da implementação deste software.b) Quando um software é verificado formalmente, produz-se uma prova de que não existe nenhum bug nele.c) Sistemas críticos que envolvem, por exemplo, a saúde de seres humanos, não devem ser especificados e verificados formalmente. Tais sistemas exigem um processo de especificação e verificação apenas informal.d) A verificação formal pode ser útil em demonstrar a correção, em relação à especificação, de sistemas tais como: protocolos de criptografia, circuitos digitais com memória interna e software expresso como código-fonte.e) Para que um sistema (seja de hardware ou de software) seja especificado formalmente, é necessário antes verificá-lo formalmente.

Page 2: GabaritoProvaEscritaPPGCA07122011

4) Considere as seguintes afirmativas sobre Requisitos de Software.

I) Requisitos de software são capacidades e condições para as quais um software deve ter conformidade.II) Escrever casos de uso é uma forma de compreender e descrever requisitos.III) Casos de uso são narrativas, não diagramas, e a modelagem de casos de uso é basicamente um ato de escrever estórias de uso de um sistema.IV) A UML (Unified Modeling Language) fornece notação para o desenvolvimento de diagramas de casos de uso, ilustrando os nomes dos casos de uso, os atores e seus relacionamentos.

Assinale a alternativa CORRETA:a) Apenas a afirmativa I é verdadeirab) Apenas as afirmativas I, II e IV são verdadeirasc) Apenas as afirmativas III e IV são verdadeirasd) Apenas as afirmativas I e III são verdadeirase) Todas as afirmativas são verdadeiras

5) Considere as seguintes afirmativas sobre Teste de Software.

I. A atividade de teste é considerada uma atividade dinâmica, pois implica na execução do código.II. As etapas que usualmente compreendem a atividade de teste são: planejamento, projeto de casos de teste, execução dos casos de teste e análise dos resultados.III. A atividade de teste deve ser iniciada na fase de codificação.IV. Testar e depurar um programa são atividades que se confundem.

Assinale a alternativa CORRETA:a) Somente as afirmativas I e II são verdadeiras.b) Somente as afirmativas II e III são verdadeiras.c) Somente as afirmativas I, III e IV são verdadeiras.d) As afirmativas I, II e IV são falsas.e) Todas as afirmativas são verdadeiras.

6) Considere as seguintes afirmativas sobre Qualidade de Software.

I. A qualidade de software enfatiza pontos como: requisitos explícitos, requisitos implícitos e normas ou padrões de desenvolvimento de software.II. A qualidade de software pode ser avaliada sob a perspectiva de qualidade do produto de software. Esta avaliação ocorre com base nos padrões de desenvolvimento do software.III. Um dos fundamentos básicos da gerência da qualidade é a padronização, que pode ser aplicada em diversos níveis: na documentação, no código e no processo.IV. A gerência de qualidade do projeto consegue uma melhor visibilidade do projeto por meio da rastreabilidade de requisitos de software.

Page 3: GabaritoProvaEscritaPPGCA07122011

Assinale a alternativa CORRETA:a) Somente as afirmativas I e II são verdadeiras.b) Somente as afirmativas II e III são verdadeiras.c) Somente as afirmativas I, III e IV são verdadeiras.d) As afirmativas I, II e IV são falsas.e) Todas as afirmativas são verdadeiras.

7) Considere as seguintes definições de operações em semáforos:

I.wait(s): a tarefa espera até que o semáforo seja verdadeiroII.down(s): a tarefa decrementa o semáforo e pode ficar bloqueada se este já estiver

ocupado.III.notify(s): a tarefa avisa que há um novo valor disponível no buffer do semáforo e

acorda a primeira tarefa que estiver aguardando por ele.IV.signal(s): a tarefa incrementa o semáforo e acorda as demais tarefas que estiverem

aguardando por ele.V.up(s): a tarefa incrementa o semáforo e pode liberar uma outra tarefa que esteja

aguardando por ele.VI.broadcast(s): a tarefa acorda as demais tarefas que estiverem aguardando no

semáforo.

As duas operações básicas definidas por Dijkstra para os semáforos são:a)I e IIIb)I e VIc)II e VId)I e IVe)II e V

8) Considere as duas threads cujos pseudo-códigos são descritos a seguir. Os semáforos s1 e s2 são inicializados em zero (0):

thread1() thread2(){ { down(s1); print('X'); print('A'); up(s1) ; up(s2); down(s2) ; print('B'); print('Y');} }

A saída gerada na tela pela execução concorrente das duas threads é:a)AXBY ou AXYBb)XABY ou XAYBc)XABY ou AXBYd)XAYB ou AXYBe)nenhuma das anteriores.

Page 4: GabaritoProvaEscritaPPGCA07122011

9) Considere um banco de memória com os seguintes “buracos” não-contíguos:

B1 B2 B3 B4 B5 B610MB 4MB 7MB 30MB 12MB 20MB

Nesse banco de memória devem ser alocadas áreas de 5MB, 10MB e 2MB, nesta ordem, usando os algoritmos de alocação First-fit, Best-fit ou Worst-fit. Indique alternativa correta:

a)Se usarmos Best-fit, o tamanho final do buraco B4 será de 6 Mbytes.b)Se usarmos Worst-fit, o tamanho final do buraco B4 será de 15 Mbytes.c)Se usarmos First-fit, o tamanho final do buraco B4 será de 24 Mbytes.d)Se usarmos Best-fit, o tamanho final do buraco B5 será de 7 Mbytes.e)Se usarmos Worst-fit, o tamanho final do buraco B4 será de 9 Mbytes.

10) Observando o fragmento do código JAVA a seguir, marque a alternativa que corresponda ao valor apresentado na saída pela execução deste código.

public class prova {public prova() {}

public static int dup(int x) { return x*5;}

public static int quint(int x) { return x*2;}

public static int calc(int x) { if (x<=1) return 0; else return 4+calc(x-1);}

public static int g(int y) { return quint(dup(10))+calc(y)+dup(y)+quint(y);}

public static void main(String[] args) { System.out.println(g(5));}

}

a) 55b) 101c) 135d) 151e) 155

Page 5: GabaritoProvaEscritaPPGCA07122011

11) O pseudo-código do algoritmo de BellmanFord para encontrar o caminha mais curto é dado a seguir. O Algoritmo de Bellman-Ford é um algoritmo de busca de caminho mínimo em um grafo dirigido ponderado, ou seja, cujas arestas têm peso, inclusive negativo.Em um programa em C, a implementação deste algoritmo poderia ser como a seguir:

#include <iostream>#include <stdio.h>#define INFINITY 199999999#define NODOS 1000

using namespace std;

typedef struct { int source; int dest; int weight; } Edge;

int distancia[NODOS];

void BellmanFord(Edge edges[], int edgecount, int nodecount, int source) { int i,j,trocou; for (i = 0; i < nodecount; i++) { distancia[i] = INFINITY; } distancia[source]=0; for (i = 0; i < nodecount; i++) { trocou = 0; for (j = 0; j < edgecount; j++) { if (distancia[edges[j].dest] > distancia[edges[j].source] + edges[j].weight) { distancia[edges[j].dest] = distancia[edges[j].source] + edges[j].weight; trocou=1; } } // se nenhuma iteração teve efeito, futuras iterações estão dispensadas if (trocou==0) break; } // usado somente para detectar ciclos negativos (dispensável) for (i = 0; i < edgecount; i++) { if (distancia[edges[i].dest] > distancia[edges[i].source] + edges[i].weight) { cout << "Ciclo negativo de pesos de arestas detectado" << endl; break; } } for (i = 0; i < nodecount; i++) { cout << "A distancia mais curta entre os nodos " << source << " e " << i <<" eh " << distancia[i] << endl; } }

Page 6: GabaritoProvaEscritaPPGCA07122011

int main (void){ char a; // Este caso de teste produzira as distancias entre o nodo 0 e os outros nodos Edge Arestas[10] = { {0, 1, 5}, {0, 2, 8}, {0, 3, -4}, {1,0, -2}, {2, 1, -3}, {2, 3, 9}, {3, 1, 7}, {3,4, 2}, {4, 0, 6}, {4, 2, 7}}; // BellmanFord(Estrutura, arestas, vertices,origem); BellmanFord(Arestas, 10, 5, 0); a = getchar(); return 0; }

Qual a distância calculada pelo algoritmo entre entre o nodo 0(zero) e o nodo 4 ?

a) -1b) -2c) 2d) 5e) 4

12) A respeito de algoritmos de ordenação, é INCORRETO afirmar:

a) Embora no caso médio o famoso algoritmo "Quicksort" ordene um conjunto dedados em tempo O(n log n), no pior caso ele pode se sair tão mal quanto um algoritmo ingênuo como o método da bolha, que tem complexidade de tempo O(n2).b) Não existe um algoritmo que ordene um conjunto de n números inteiros que execute em tempo O(log n).c) Independente da entrada, o algoritmo “Mergesort” tem a mesma complexidade de tempo tanto para o melhor caso, o caso médio e o pior caso.d) O algoritmo Insertion Sort, embora não seja considerado eficiente, tem bom desempenho e tem complexidade de tempo O(n) se executado sobre um conjunto de dados que já está ordenado.e) A complexidade de tempo no caso médio do algoritmo "Selection Sort" é O(n log n).

13) A respeito de Árvores de Busca Binária (também chamada de "árvore binária ordenada"), é INCORRETO afirmar:

a) A inserção de um elemento em uma árvore com n nós no caso médio leva O(log n) passos.b) Uma "Árvore AVL" é um exemplo de árvore de busca binária auto-balanceada.c) Uma "Árvore Rubro-negra" é um exemplo de árvore de busca binária, mas não é auto-balanceada.d) Árvores B podem ter nós com mais de 2 filhos, portanto não são consideradas árvores binárias.e) Uma árvore binária tem complexidade de espaço O(n) para guardar n elementos.

Page 7: GabaritoProvaEscritaPPGCA07122011

14) Considere as seguintes afirmativas sobre Requisitos de Software:

I. Requisitos Funcionais descrevem as funções que o software deverá executar. II. Requisitos Funcionais não são rastreáveis, ou seja, não é possível identificar o código fonte relacionado a um requisito funcional.III. Requisitos Não-Funcionais descrevem as ações realizadas para cada entrada do sistema, ou seja, é aquilo que descreve o que deve ser feito pelo sistema.

Assinale a alternativa CORRETA:

A) Apenas a afirmativa I é verdadeira.B) Apenas as afirmativas I e III são verdadeiras.C) Apenas a afirmativa II é verdadeira.D) Apenas as afirmativas II e III são verdadeiras.E) Todas as afirmativas são verdadeiras.

15) Segundo as características da Unified Modeling Language (UML) 2.0, no Diagrama de Classes a seguir quais são os atributos de uma instância da classe D:

A) a0, b0, c0, d0, e0.B) d0.C) a0, b0, d0, e0.D) d0, e0.E) a0, d0, e0.

Page 8: GabaritoProvaEscritaPPGCA07122011

16) Considerando as seguintes afirmativas sobre a Unified Modeling Language (UML) 2.0, é correto afirmar que no Diagrama de Casos de Uso a seguir:

I. O caso de uso “Validar o usuário” poderá ser executado ou não.II. O caso de uso “Enviar via SEDEX” poderá ser executado ou não.III. O caso de uso “Validar o usuário” sempre é executado.IV. O caso de uso “Enviar via SEDEX” sempre é executado.

Assinale a alternativa CORRETA:

A) Apenas a afirmativa I é verdadeira.B) Apenas a afirmativa II é verdadeira.C) Apenas a afirmativa III é verdadeira.D) Apenas as afirmativas I e IV são verdadeiras.E) Apenas as afirmativas II e III são verdadeiras.

Page 9: GabaritoProvaEscritaPPGCA07122011

QUESTÕES DE INGLÊS

Para as questões de inglês(17 a 20), considere o depoimento de Nicholas Negroponte sobre Steve Jobs:

Nicholas Negroponte: Steve Jobs - Influence, Not Influenced.

By Nicholas Negroponte, founder and chairman of One Laptop per Child

I first met Steve in 1979, when the idea of merging design and computation was considered sissy or silly. Not to Steve. A fact not widely known: He was one of the first funders (1980) of the MIT Media Lab, then a mere inkling rather than a place, with a gift of $500,000, which he could ill afford at the time.Shortly after, my partner Jerome Wiesner introduced Steve to Edwin Land. I recall the meeting in Cambridge well. It lead to a fast friendship with Land and the subsequent strong influence of Polaroid’s graphics and style. Soon thereafter Steve was the influence, not influenced.When I started One Laptop per Child (OLPC), the first person I went to was Steve. In 2003 I believed that the most expensive part of a laptop was the display (50-65% at the time) and the way to drop that cost, and to make a less than $100 laptop, was to project the image rather than use an LCD. We made an unfolding laptop that rear-projected the image from a tiny chip, itself possibly less than $5.I took my mechanical model to Steve’s house in Palo Alto and showed him. He smiled. He said, “Nicholas, this looks like a science project.” Forget rear-projection. Use an LCD. He was right.Three years later, April 2007, I brought him one of the first XO laptops, which has a wonderful and special LCD. We spent two hours. He promised to use the laptop over the weekend and write me. Three weeks later he did:

Date: Fri, 18 May 2007 20:00:08 -0700From: Steve JobsTo: Nicholas NegroponteCc: Steve JobsNicholas,We’ve known each other a long time – too long for me to do anything other than tell you what I think….the software is some of the worst I’ve ever seen…Please don’t be too mad at me…Your old friend,Steve

Harsh, but right. It took the next three years to fix the software.

I wish I could show him our tablet.

Nicholas Negroponte is founder and chairman of the One Laptop per Child non-profit association, and formerly co-founder and director of the MIT Media Lab.

Page 10: GabaritoProvaEscritaPPGCA07122011

17) Algumas informações contidas no texto levam a crer que Negroponte e Jobs tinham um relacionamento relativamente próximo. São verdadeiras as seguintes afirmações:

I) Antes de qualquer outro, Negroponte consultou Jobs a respeito de seu projeto OLPC.II) Como eram vizinhos em Palo Alto, Negroponte, aproveitou para visitar Jobs em sua casa para lhe mostrar um protótipo do seu laptop de $100.00.III) Jobs considerava que podia ser tão direto e sincero em sua opinião sobre o laptop de Negroponte que lhe disse que o software era um dos piores que já tinha visto.IV) Jobs considerou a solução de projeção por trás utilizada no protótipo apresentado por Negroponte para reduzir custos uma verdadeira "sacada" tecnológica, dizendo que mais parecia um projeto científico.

A partir dessa análise, pode-se concluir que estão CORRETAS:

A) Apenas a afirmação I.B) Apenas as afirmações I e III.C) Apenas as afirmações II e IV.D) Apenas a afirmação III.E) Apenas as afirmações III e IV.

18) Analise as seguintes afirmações:I) Quando Negroponte e Jobs se conheceram em 1979, design e informática eram duas áreas que, reconhecidamente, podiam se apoiar mutuamente, o que ajudou a transformar o Media Lab em um grande sucesso, nos anos que se seguiram.II) Jobs foi um dos fundadores do Media Lab do MIT.III) Jerome Wiesner era sócio de Edward Land na Polaroid, empresa que teve grande influência na Apple dos primeiros tempos.IV) Negroponte acreditava que a parte mais 'expansiva' (que ocupava mais espaço) de um laptop era o monitor de vídeo. Por isso, pensou em substituí-lo por um projetor.

A partir dessa análise, pode-se concluir que estão CORRETAS:

A) Apenas as afirmações I e IV.B) Apenas as afirmações II e III.C) Apenas a afirmação II.D) Apenas as afirmações III e IV.E) Nenhuma das alternativas.

Page 11: GabaritoProvaEscritaPPGCA07122011

19) Analise as seguintes afirmações:

I) Demorou três anos para que a equipe do Media Lab conseguisse aprimorar o software do laptop de modo que ele atingisse um nível considerado satisfatório por Jobs.II) O depoimento de Negroponte relata três momentos em que Jobs interferiu no projeto do laptop do projeto OLPC, em todas as ocasiões ocasionando transformações significativas no sentido de se obter um produto mais adequado.III) Para não ferir os sentimentos do amigo, Jobs decidiu testar o protótipo que Negroponte havia lhe entregue por três semanas, e não apenas ao longo de um fim de semana, como havia se prontificado inicialmente.IV) Negroponte gostaria de poder contar com a ajuda de Jobs, novamente, opinando sobre a nova versão do software do laptop.

A partir dessa análise, pode-se concluir que estão CORRETAS:

A) Apenas as afirmações II e III.B) Apenas a afirmação I.C) Apenas a afirmação III.D) Apenas a afirmação IV.E) Apenas as afirmações II e IV.

20) Analise as seguintes afirmações:

I) Negroponte acumula, atualmente, as funções de presidente da OLPC e de diretor do Media Lab do MIT.II) O problema com o uso de projeção das imagens, ao invés de uma tela de LCD era o custo da hora de projeção da lâmpada: um pouco menos de $5,00.III) Jobs pedia que Negroponte "não ficasse muito bravo com ele", porque tinha demorado três semanas para avaliar o protótipo, quando havia prometido que o faria ao longo de um fim de semana.IV) Os $500.000,00 doados por Jobs para o Media Lab em 1980, embora irrisórios para a Apple, foram uma grande ajuda para que o Media Lab se estabelecesse, naquele momento.

A partir dessa análise, pode-se concluir que estão CORRETAS:

A) Apenas a afirmação IV.B) Apenas as afirmações I e II.C) Apenas as afirmações III e IV.D) Apenas a afirmação I.E) Nenhuma das afirmações.