e.book: questÕes do enade comentadas …nesse contexto, escreva uma rotina em c (ansi) em que se...

50
e.BOOK: QUESTÕES DO ENADE COMENTADAS Curso: Engenharia de Computação Organizador(es): Sibelius Lellis Vieira

Upload: others

Post on 28-Feb-2020

80 views

Category:

Documents


6 download

TRANSCRIPT

e.BOOK: QUESTÕES DO ENADE COMENTADAS

Curso: Engenharia de Computação

Organizador(es): Sibelius Lellis Vieira

SUMÁRIO

QUESTÃO DISCURSIVA Nº 3

Autor(a): Eugênio Jálio Messala Cândido Carvalho

QUESTÃO DISCURSIVA Nº 4

Autor(a): Gustavo Siqueira Vinhal

QUESTÃO DISCURSIVA Nº 5

Autor(a): Sibelius Lellis Vieira

QUESTÃO Nº 19

Autor(a): Wilmar Oliveira de Queiroz

QUESTÃO Nº 20

Autor(a): Carmen Cecilia Centeno

QUESTÃO Nº 21

Autor(a): Sibelius Lellis Vieira

QUESTÃO Nº 22

Autor(a): Sibelius Lellis Vieira

QUESTÃO Nº 23

Autor(a): Angélica da Silva Nunes

QUESTÃO Nº 24

Autor(a): Talles Marcelo G. de A. Barbosa

QUESTÃO Nº 25

Autor(a): Aníbal Santos Jukemura

QUESTÃO Nº 26

Autor(a): Angélica da Silva Nunes

QUESTÃO Nº 27

Autor(a): Talles Marcelo G. de A. Barbosa

QUESTÃO Nº 28

Autor(a): Marco Antônio Figueiredo

QUESTÃO Nº 29

Autor(a): Rafael Leal Martins

QUESTÃO Nº 30

Autor(a): Sibelius Lellis Vieira

QUESTÃO Nº 31

Autor(a): Vicente Paulo de Camargo

QUESTÃO Nº 32

Autor(a): Nágela Bitar Lobo

QUESTÃO Nº 33

Autor(a): Ronaldo Lopes de Oliveira

QUESTÃO Nº 34

Autor(a): Rafael Leal Martins

QUESTÃO Nº 35

Autor(a): Sibelius Lellis Vieira

QUESTÃO DISCURSIVA Nº 3

Os autômatos celulares são sistemas discretos no espaço e no tempo que operam em uma rede

regular finita ou infinita e são caracterizados por interações locais. Cada elemento, denominado

célula, está associado a um dado estado em um conjunto discreto e é atualizado com base nos

estados anteriores de suas células vizinhas imediatas, de acordo com um conjunto de regras

locais. Os autômatos celulares geram um grande interesse na área de Engenharia de

Computação desde o início dos anos 1960, quando foi criado o Jogo da Vida, e agora são

amplamente estudados para modelagem e simulação de processos espaço-temporais reais em

uma ampla variedade de domínios de aplicação.

SLIMI, R. et al. A celular automata model for Chagas disease. Applied

Mathematical Modeling.

Amsterdã, v. 33, p. 1072-

1085, 2009 (adaptado).

As regras do Jogo da Vida são:

● qualquer célula viva com menos de dois vizinhos vivos morre de solidão;

● qualquer célula viva com mais de três vizinhos vivos morre de superpopulação.

● qualquer célula viva com dois três vizinhos vivos continua no mesmo estado para a

próxima geração;

● qualquer célula morta com três vizinhos vivos torna-se uma célula viva.

Nesse contexto, escreva uma rotina em C (ANSI) em que se utilizem as regras acima descritas

para definir o estado atual de uma célula com base no seu estado anterior e no de suas vizinhas.

Ao elaborar sua resposta, considere que:

● as células são entradas de uma matriz;

● os casos não cobertos pelas regras significam permanência no mesmo estado;

● a rotina deve ter como parâmetros a matriz M, definida como “unsign ed char **M”, e

os índices i, j da posição da célula, definidos como inteiros;

● a rede é quadriculada, o valor 1 (um) na matriz significa célula viva e o valor 0 (zero)

significa célula morta;

● os vizinhos correspondem às 4 células que compartilham lados e as 4 diagonais da

célula de interesse;

● não há necessidade de se preocupar com os limites da matriz.

Gabarito:

Tipo de questão: Difícil

Conteúdo avaliado: Programação

Autor: Eugênio Jálio Messala Cândido Carvalho

Comentáio:

A representação do problema é apresentada na tabela abaixo.

Cada célula da representação, seja o individuo ou seus vizinhos, armazena os valores 0 ou 1

onde 0 é célula morta e 1 é célula viva. O enunciado do exercício orienta a desprezarmos os

limites da matriz, isto simplifica o problema e facilita a solução, pois qualquer célula tem

sempre 8 vizinhos (4 vizinhos laterais e 4 vizinhos diagonais).

A soma dos 4 vizinhos laterais é = mat[l-1][c] + mat[l][c-1]+mat[l][c+1] + mat[l+1][c].

A soma dos 4 vizinhos diagonais é = mat[l-1][c-1] + mat[l-1][c+1] + mat[l+1][c-1] +

mat[l+1][c+1];

A soma total dos vizinhos = soma lateral + soma diagonal, que representa a quantidade de

vizinhos vivos.

A regras do jogo da vida é representada na tabela abaixo:

Exemplos de respostas possíveis:

void jogoSolucao1 (unsigned char **M, int I, int j) {

int somaVizinhosLaterais = M[l-1][c] + M[l][c-1]+ M[l][c+1] + M[l+1][c];

int somaVizinhosDiagonais = M[l-1][c-1] + M[l-1][c+1] + M[l+1][c-1] + M[l+1][c+1];

int quantidadeDeVizinhosVivos = somaVizinhosLaterais + somaVizinhosDiagonais;

if(quantidadeDeVizinhosVivos < 2 || quantidadeDeVizinhosVivos > 3) M[I][j] = 0;

if(quantidadeDeVizinhosVivos == 3) M[I][j] = 1;

}

void jogoSolucao2 (unsigned char **M, int I, int j) {

unsigned char qtd_viz_vivos = 0;

int p, q;

for (p=-1; p<=1; p++)

for (q=-1; q<=1; q++)

qtd_viz_vivos+= M[i+p][j+q];

qtd_viz_vivos-= M[i][j]; // subtrai a central

if (qtd_viz_vivos<2 || qtd_viz_vivos>3) M[i][j]=0;

if (qtd_viz_vivos==3) M[i][j]=1;

}

Referências: Pereira, S. L. Algoritmos e Lógica de Programação em C - Uma Abordagem

Didática, 1ª ed., Editora Érica, 2010. Feofiloff, P. Algoritmos em linguagem C, Editora

Campus/Elsevier, 2008- 2009. Kernighan, B.; Ritchie, D.. C: A Linguagem de Programação .

Porto Alegre, Editora Campus, 1986.

QUESTÃO DISCURSIVA Nº 4

O monitoramento ambiental é um processo de coleta de dados, estudo e acompanhamento

contínuo e sistemático das variáveis ambientais. No contexto da realização de um

monitoramento ambiental, é projetado um coletor das seguintes variáveis climáticas: radiação

solar, temperatura do ambiente, pressão atmosférica e umidade. Esse coletor utiliza um

microcontrolador de 32 bits provido de um módulo de comunicação RS-232, um de

comunicação I2C, um de conversão analógico-digital de 12 bits, dois temporizadores, um

controlador de interrupção e uma memória estática de 8Kbytes. As informações das variáveis

ambientais devem ser registradas pelo coletor em intervalos de 30 min e cada dado deve ser

armazenado, em resolução de 16 bits, pelo período de um mês.

Para medir a temperatura do ambiente, foi selecionado um termistor do tipo NTC (negative

temperature coefficient). A figura a seguir apresenta o circuito projetado para realizar a

interface entre este termistor e o pino de entrada analógica do microcontrolador, de forma que a

resistência variável R do termistor seja convertida em tensão compatível com a faixa de tensão

de trabalho [0, Vref] do conversor analógico-digital do microcontrolador.

Com base neste projeto, faça o que se pede nos itens a seguir.

a) Cite duas características que devem ser consideradas na escolha do microcontrolador.

(valor: 2,0 pontos)

b) Obtenha uma equação que relacione a resistência variável R do termistor com o valor

digital “x” gerado pelo conversor analógico-digital. (valor: 4,0 pontos)

c) Calcule o tamanho dos dados a serem preservados, em Kbits, e, com base nesse valor,

indique qual o tamanho mínimo de memória I2C que deve ser utilizado para armazenar os

dados. (valor: 4,0 pontos)

Gabarito:

Tipo de questão: Difícil

Conteúdo avaliado: Instrumentação, Acionamento e Microcontroladores

Autor: Gustavo Siqueira Vinhal

Comentário: a) Pode-se citar algumas das seguintes características:

· Memória (para armazenar os valores coletados durante o mês);

· Módulo de interfaceamento com periféricos (para comunicar com os sensores);

· Adequação à temperatura, radiação solar, pressão atmosférica ou umidade do

ambiente (para proteger o dispositivo dos danos externos provocadas pela natureza);

· Velocidade da unidade de processamento (para conseguir tratar as diversas coletas);

b) Para solucionar este item o estudante precisa relacionar a tensão de entrada e o valor digital

gerado pelo conversor analógico-digital. Essa relação se dá pela dedução da fórmula

matemática obtida através da Lei de Kirchhoff das Correntes (LKC):

Como o conversor analógico-digital possui resolução de 12 bits, o valor de referência (Vref) é

Além disso, tem-se a proporção linear entre o valor analógico e o valor digital: . Logo:

c) Considerando os valores dados no enunciado, existem 4 variáveis ambientais com resolução

de 16 bits cada que precisam ser registradas a cada 30 minutos durante um mês (31 dias). Se as

informações são coletadas a cada 30 minutos, há 2 coletas por hora, totalizando 48 coletas por

dia. Logo:

Como há necessidade de uma memória maior ou igual a 93 Kbits, a menor memória necessária

é uma de 128Kbits.

Referências: Referências:

FIALHO, A. B. Instrumentação industrial: conceitos, aplicações e análises. 5. ed. São

Paulo: Érica, 2007.

SANDRINI LUZ, C. E. Programando microcontroladores PIC linguagem C com base no

PIC18F4520: teoria e prática. São Paulo: Érica, 2011.

QUESTÃO DISCURSIVA Nº 5

A gerência de memória é a parte do sistema operacional que tem por finalidade gerir os

recursos de memória e colocá-los à disposição dos usuários de maneira mais eficiente possível.

Uma técnica de alocação de memória amplamente utilizada é a alocação particionada dinâmica,

em que cada programa utiliza o espaço de que necessita, passando a ser este espaço a sua

partição.

Considere um sistema que, em um dado momento, possua, em sua memória principal, áreas

livres com os seguintes tamanhos: 10 KB, 4 KB, 19 KB, 27 KB, 12 KB E 15 KB. Considere,

ainda, que um programa de 12 KB será carregado na memória desse sistema. Com base nesse

contexto, faça o que se pede nos itens a seguir.

a) Indique em qual partição do sistema esse programa seria alocado, no caso do uso de

cada uma das seguintes estratégias: first-fit, best-fit, e worst-fit. Justifique sua resposta.

(valor 6,0 pontos)

b) Indique, dentre as estratégias first-fit, best-fit, e worst-fit, a que conduz à menor

fragmentação da memória no contexto apresentado. Em seguida, descreva uma

situação em que a estratégia indicada não é a melhor opção para minimizar problemas

de fragmentação da memória. (valor 4,0 pontos)

Gabarito: Não se aplica

Tipo de questão: Fácil

Conteúdo avaliado: Sistemas Operacionais

Comentários:

a) A estratégia first-fit escolhe a primeira partição em que o programa possa ser alocado,

ou seja, a primeira partição igual ou maior que 12K. Nesse caso seria a 3ª partição: 20K. A

estratégia best-fit escolhe a partição que irá produzir a menor área livre após a alocação, ou

seja, a partição maior que 12K tal que T-12K seja mínimo, ou T é o tamanho da partição. Nesse

caso, seria a 7ª partição: 12K, pois 12K – 12K=0. A estratégia worst-fit escolhe a partição que

irá produzir a maior área livre após a alocação, ou seja, T – 12K é máximo. Nesse caso seria 5ª

partição: 27K.

b) A estratégia best-fit é a mais indicada, pois produz a menor fragmentação no contexto

apresentado. Entretanto, existem situações em que a escolha da partição (ainda suficiente para

acomodar o programa) deixa um espaço muito pequeno para alocações subsequentes,

produzindo vários pequenos espaços difíceis de alocar. Como exemplo, partições de 13K até

15K se forem alocadas para 12K de uso, vão originar novas partições de 1K até 3 K, que

podem não ser úteis para receber nenhuma alocação. Neste caso, a escolha do worst-fit pode

ser melhor, pois o espaço restante é grande o suficiente para alocar novas requisições de

memória.

Referências:

SILBERSCHATZ, A.; GAVIN B. P.; GAGNE G. Fundamentos de sistemas operacionais. 8.

ed. Rio de Janeiro: Elsevier/Campus, 2013.

TANENBAUM, Andrew S. Sistemas operacionais modernos. 3. ed. São Paulo: Prentice-

Hall, 2010.

Autor: Sibelius Lellis Vieira

QUESTÃO Nº 19

Pré requisitos:

· Deve haver quatro filas de espera: A, B, C e D;

· deve haver sensores que indiquem a presença de clientes nas filas, sendo atribuído o

valor 1 quando houver clientes na fila, e 0 quando a fila estiver vazia;

· quando determinada fila estiver vazia, sua catraca deverá ficar travada, e as filas

devem estar na ordem de prioridade a seguir: A > B > C > D;

· no máximo, duas catracas poderão estar abertas em um mesmo instante, respeitando-

se a ordem de prioridade;

· as catracas das filas A, B, C e D devem ser representadas pelas variáveis C1, C2, C3

e C4, respectivamente;

· o valor de saída 1 deverá indicar que a catraca está aberta, e o valor 0 que a catraca

está fechada.

SOLUÇÃO:

Inicialmente monta-se a Tabela Verdade para quatro variáveis de entrada (filas A, B, C e D) e

as quatro saídas C1, C2, C3 e C4:

A B C D C1 C2 C3 C4 Comentários

0 0 0 0 0 0 0 0 Não existe cliente em nenhuma

fila

0 0 0 1 0 0 0 1 D=1 então C4=1

0 0 1 0 0 0 1 0 C=1 então C3=1

0 0 1 1 0 0 1 1 C=1 e D=1 então C3=1 e C4=1

0 1 0 0 0 1 0 0 B=1 então C2=1

0 1 0 1 0 1 0 1 B=1 e D=1 então C2=1 e C4=1

0 1 1 0 0 1 1 0 B=1 e C=1 então C2=1 e C3=1

0 1 1 1 0 1 1 0 B=1, C=1 e D=1 então C2=1 e

C3=1 e C4=0*

1 0 0 0 1 0 0 0 A=1 então C1=1

1 0 0 1 1 0 0 1 A=1 e D=1 então C1=1 e C4=1

1 0 1 0 1 0 1 0 A=1 e C=1 então C1=1 e C3=1

1 0 1 1 1 0 1 0 A=1 e C=1 e D=1 então C1=1 e

C3=1 e C4=0*

1 1 0 0 1 1 0 0 A=1 e B=1 então C1=1 e C2=1

1 1 0 1 1 1 0 0 A=1 e B=1 e D=1 então C1=1 e

C2=1 e C4=0*

1 1 1 0 1 1 0 0 A=1 e B=1 e C=1 então C1=1 e

C2=1 e C3=0*

1 1 1 1 1 1 0 0 A=B=C=D=1 então C1=1, C2=1,

C3=0 e C4=0*

* no máximo, duas catracas poderão estar abertas em um mesmo instante, respeitando-se a

ordem de prioridade;

Análise das combinações das entradas/saídas da Tabela Verdade e comparando com as

alternativas da questão e, tirando conclusões sem efetuar cálculos:

1. Sempre que houver clientes na fila A (A=1) a saída C1=1 (catraca C1 estará aberta).

Observando os circuitos combinatórios das alternativas somente as alternativas C, D e E

atendem ao enunciado (C1=A), podendo assim eliminar as alternativas A e B.

2. Sempre que A=0 e B=1 ou A=1 e B=1 a catraca C2 estará aberta, isto é: C2= A’B +

AB, isto é, simplificando sempre que B=1 a catraca C2 estará aberta. Observando os

circuitos combinatórios das alternativas somente a alternativa C atende ao especificado

(C2=A´B+AB), podendo assim eliminar também as alternativas D e E.

3. Então a única alternativa que restou foi a C, que é a correta.

Utilizando a simplificação pelo método do Mapa de Karnaugh:

a) Saída C1.

b) Saída C2

c) Saída C3

d) Saída C4

Portanto a única alternativa (circuito lógico combinatório) que satisfaz é a C.

Gabarito: C

Tipo de questão: Fácil desde que lembre do conteúdo

Conteúdo avaliado: Sistemas Digitais

Autor(a): Wilmar Oliveira de Queiroz

Comentário: A solução do problema passa pela interpretação do problema com a montagem da

Tabela Verdade. Somente analisando as combinações das saídas pode-se resolver o problema

Referências:

TOCCI, Ronald J.; WIDMER, Neal S. Sistemas digitais: princípios e aplicações. 10. ed. Rio

de Janeiro: Pearson Prentice Hall, 2007.

QUESTÃO Nº 20

Um compilador transforma uma linguagem, em geral textual, em outra linguagem. Um dos

tipos de linguagens que um compilador pode transformar são as regulares, que podem ser

descritas utilizando-se expressões regulares compostas ou símbolos isolados agrupados com

operadores * e U e organizadas com auxílio de parênteses.

Nesse contexto, avalie as afirmações a seguir.

I. A palavra 10010100 pertence à linguagem representada por (100*)*.

II. A palavra 10010 pertence à linguagem representada por (1(10)*0)*

III. Existe somente uma expressão regular para representar uma linguagem regular.

É correto o que se afirma em

A) I, apenas

B) II, apenas

C) I e III, apenas

D) II e III, apenas

E) I, II e III.

Gabarito: A

Tipo de questão: fácil

Conteúdo avaliado: Linguagens Formais e Autômatos

Autor(a): Carmen Cecilia Centeno

Comentário:

* significa que o termo pode acontecer nenhuma, uma ou mais vezes e tem maior precedência.

Logo em I a expressão (100*)* indica que todo um deve ser seguido de pelo menos um zero. A

palavra 10010100 é formada de três ocorrências da expressão 100* sendo a primeira: 100, a

segunda: 10 e a terceira: 100

Em II a expressão (1(10)*0)* força que 1 seja o primeiro item da palavra e 0 o último e que no

meio se repita 10’s ou 01’s. A palavra 10010 cumpre o primeiro quesito mas possui dois 0’s

consecutivos o que não pode ser formado pela expressão.

Já a afirmação III é falsa pois a mesma linguagem pode ser representada por vária expressões

equivalentes, por exemplo: (1 U 0)* equivale a (1*0*)*

Referências:

HOPCROFT, John ; MOTWANI; Rajeev; ULLMAN, Jefrey D. Introduction to automata

theory, languages and computation. 3. ed. New Jersey: Prentice Hall, 2006.

QUESTÃO Nº 21

Um microcontrolador controla o dispositivo em que ele se encontra embutido através da sua

interface de programação de aplicativos (API). Essencialmente, essa interface consiste em um

conjunto de registradores de dados, de controle e de estado. Em um microcontrolador

hipotético, os bits 5, 4 e 3 do registrador de controle MODOEVENTO de 16 bits controlam a

configuração do tipo de evento que gera um gatilho em um pino específico, conforme a

seguinte codificação binária: 000 = desabilitado; 001 = sensível a borda de subida; 010 =

sensível a borda de descida; 011 = sensível a ambas as bordas; 100 = sensível a nível alto; 101

= sensível a nível baixo. O bit 0, à extrema direita, é o menos significativo, e o bit 15, o mais

significativo.

Considerando-se essa situação e sabendo-se que, em linguagem C, os símbolos |, & e ~

correspondem aos operadores lógicos bit a bit OR, AND e NOT, respectivamente, qual

instrução em C deve ser utilizada para configurar o pino, de forma que ele fique sensível a

ambas as bordas?

A) MODOEVENTO = 0x0018

B) MODOEVENTO |= 0x0018

C) MODOEVENTO &= ~0x0018

D) MODOEVENTO = (MODOEVENTO | 0x0018) & ~0x0038

E) MODOEVENTO = (MODOEVENTO &~0x0038) | 0x0018

Gabarito: E

Tipo de questão: Difícil

Conteúdo avaliado: Sistemas Digitais e Microcontroladores

Autor(a): Sibelius Lellis Vieira

Comentário:

Para configurar os pinos de modo o microcontrolador fique sensível a ambas as bordas, os bits

5, 4 e 3 do registrador MODOEVENTO devem ser iguais à 011. Uma possibilidade é carregar

diretamente o registrador, que tem 16 bits, com este valor, zerando todos os outros bits. Neste

caso, MODOEVENTO receberia 0x0018. Na hipótese de não se alterar os valores previamente

presentes em MODOEVENTO, a alternativa é realizar uma operação para setar os bits 4 e 3 do

registrador e resetar apenas o bit 5, mantendo-se os outros inalterados.

O resultado final das operações deixaria MODOVENTO = 0bXXXXXXXXXXX011XXX,

sendo que os bits marcados como X ficam inalterados. Tal resultado pode ser obtido fazendo

uma operação AND com uma palavra na qual todos os bits estão setados, com exceção do bit 5,

4 e 3, ou seja, 0b1111111111000111, ou 0xFFC7 ou ~0x0038. Portanto, a operação

(MODOEVENTO & ~0x0038) zera os bits 5, 4 e 3 de MODOEVENTO. Posteriormente,

realiza-se um OR com uma palavra 16 na qual apenas os bits 4 e 3 estão setados, ou seja, com a

palavra 0b0000000000011000 ou 0x0018. Portanto, MODOEVENTO = (MODOEVENTO &

~0x0038)|0x0018 tem como efeito setar os bits 3 e 4 de MODOEVENTO e resetar o bit 5,

deixando os outros bits inalterados.

Referências:

TOCCI, Ronald J.; WIDMER, Neal S. Sistemas digitais: princípios e aplicações. 11. ed. Rio

de Janeiro: Pearson Prentice Hall, 2011.

SANDRINI LUZ, C. E. Programando microcontroladores PIC linguagem C com base no

PIC18F4520: teoria e prática. São Paulo: Érica, 2011.

QUESTÃO Nº 22

Considere o código em C, a seguir, compilado em um sistema computacional de 32 bits, que

exemplifica o uso do tipo de dados ponteiro.

A partir das informações apresentadas, assinale a opção que apresenta a memória principal e

seu conteúdo, após o programa ser executado.

Gabarito: A

Tipo de questão: Difícil

Conteúdo avaliado: Arquitetura de Computadores e programação

Autor(a): Sibelius Lellis Vieira

Comentário:

No código, são declaradas três variáveis: duas variáveis do tipo inteiro, salário1 e salário2, e

uma variável que é um apontador (ou endereço) para um inteiro, variável ptr. Estas variáveis

são definidas em sequência e seus endereços de memória também são alocados em sequência.

Portanto, a primeira variável alocada é salário1, a segunda é salário2 e a terceira é ptr.

A seguir, o conteúdo de salário1 passa a ser 6750 em decimal, ou 0x00001A5E em

hexadecimal, com 32 bits. O conteúdo de ptr é o endereço de memória de salario1, e o

conteúdo de salário2 passa a ser o conteúdo do endereço apontado por ptr adicionado do valor

1000 em decimal. Como ptr aponta para salário1, *ptr é o conteúdo deste endereço, ou seja,

6750. Portanto, o conteúdo de salário2 passa a ser 7750, ou 0x00001E46 em hexadecimal.

Na memória, partindo do endereço 0x0070 em diante, o valor de salário1 é armazenado de

0x0070 até 0x0073, sendo o byte menos significativo armazenado na menor posição de

memória, 0x0070, e o mais significativo na maior, 0x0073. Portanto, 0x5E é armazenado em

0x0070, e assim por diante. O valor de salário2 é armazenado de 0x0074 até 0x0077, seguindo

a mesma arquitetura, ou seja, 0x46 é armazenado em 0x0074 em diante. Por último, ptr é

armazenado de 0x0079 até 0x007C, sendo seu valor o endereço inicial de salário1, ou seja,

0x0070. Logo, 0x70 é armazenado em 0x0079 e 0x00 nos endereços subsequentes (0x007A,

0x007B e 0x007C). Portanto, a alternativa correta é a letra A.

Referências:

STALLINGS, William. Arquitetura e organização de computadores. 8. ed. São Paulo:

Pearson, 2010.

QUESTÃO Nº 23

Os filtros digitais são de grande importância em tratamento de sinais. Com códigos

relativamente pequenos, é possível implementar filtros de ordem bastante elevada, o que em

circuitos analógicos demandaria uma quantidade considerável de amplificadores operacionais.

A seguir, reproduz-se um fragmento de código que implementa um filtro digital estruturado.

Considerando as informações apresentadas, avalie as asserções a seguir e a relação proposta

entre elas.

I. O algoritmo forma um sistema assintoticamente estável, linear, invariante e discreto no

tempo

PORQUE

II. Os polos do sistema formado pelo algoritmo estão no semiplano complexo esquerdo,

excluindo-se o eixo imaginário.

A respeito dessas asserções, assinale a opção correta.

A. As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.

B. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I.

C. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.

D. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.

E. As asserções I e II são proposições falsas.

Gabarito: B

Tipo de questão: Difícil

Conteúdo avaliado: Sinais e sistemas

Autor(a): Angélica Silva Nunes

,Comentário:

comentada da questão:

Análise da assertiva I:

Analisando-se o algoritmo do filtro em questão, conclui-se que: o sistema é estável, pois a sua

saída 𝑦está condicionada à entrada 𝑦do sistema, observando-se que para qualquer entrada

limitada 𝑦, a saída correspondente 𝑦 também é limitada.

Para determinar a condição de linearidade do sistema é necessário que este atenda às

propriedades da aditividade e da homogeneidade, ou seja, 𝑦{𝑦1𝑦1 + 𝑦2𝑦2} = 𝑦1𝑦1 + 𝑦2𝑦2.

Para verificar essa propriedade, vamos considerar que: 𝛼1 = 2;𝑦1 = [1,1,1,1,1,1, . . . ]; 𝑦2 =

3; 𝑦2 = [1,0,1,0,1] e vamos aplicar o algoritmo a esses valores. A saída produzida é

apresentada a seguir:

Entrada: 𝑦1 = [1,1,1,1,1, . . . ] → 𝑦1 = 0,1, −1, −1.5, −0.5

Entrada:𝑦2 = [1,0,1,0,1, . . . ] → 𝑦2 = 0, 1, −2,0.5, −1

Entrada: 𝛼1𝑦1 + 𝑦2𝑦2 = [5,2,5,2,5, . . . ] → 𝑦{𝑦1𝑦1 + 𝑦2𝑦2} = [0, 5 , −8, −1.5, −4, . . . ]

Calculando: 𝛼1𝑦1 + 𝑦2𝑦2, obtemos a sequência: [0,5, −8, −1.5, −4, . . . ]

Assim, como 𝑦{𝑦1𝑦1 + 𝑦2𝑦2} = 𝑦1𝑦1 + 𝑦2𝑦2, o sistema é linear.

Para determinar a condição de invariância no tempo do sistema é necessário comprovar que um

deslocamento no tempo 𝑦no sinal de entrada𝑦produza o mesmo deslocamento no tempo no

sinal de saída 𝑦, ou seja, 𝑦{𝑦[𝑦 − 𝑦]} = 𝑦[𝑦 − 𝑦].

Para comprovar essa propriedade, vamos considerar que: 𝑦[𝑦] = [1,2,3,4,5, . . . ]e 𝑦 = 2.

Assim, 𝑦[𝑦 − 𝑦] = 𝑦[𝑦 − 2] = [0,0,1,2,3,4,5. . . ].Aplicando-se o algoritmo a 𝑦[𝑦 − 2],

obtemos a sequência: [0,0,0,1,0,0, −1.5, −2]. Da mesma forma, aplicando-se o algoritmo a

𝑦[𝑦], obtemos a sequência: 𝑦[𝑦] = [0,1,0,0, −1.5, −2]] . Deslocando-se𝑦[𝑦] em 2 unidades,

obtemos 𝑦[𝑦 − 2] = [0,0,0,1,0,0, −1.5, −2]. Assim, o sistema é invariante no tempo.

O sistema é discreto no tempo, porque tanto a entrada do sistema , quanto a saída do sistema

são constituídos por valores discretos.

Assim, a assertiva I está correta.

Análise da assertiva II:

O sistema descrito pelo algoritmo é causal, uma vez que, a saída depende de valores passados

da entrada . Observa-se que, a cada iteração, é calculado o valor de que irá ser utilizado para

calcular o próximo valor de na iteração seguinte. Na análise a assertiva 1, observou-se também

que o sistema é estável. Uma propriedade importante de um sistema que seja ao mesmo tempo

causal e estável é que todos os pólos devem estar semiplano esquerdo, isto é, todos tem partes

reais negativas. Assim, a assertiva II também está correta.

Análise da relação entre a assertiva I e a assertiva II.

A justificativa da assertiva I está contida na sua resolução comentada, que em nenhum

momento inclui o que está descrito na assertiva II da questão. Na verdade, é a assertiva II que é

justificada parcialmente (estabilidade do sistema) pelo o que está contido na assertiva I e não o

inverso.

Portanto, a resposta correta para essa questão é a alternativa b) que diz que as duas assertivas

estão corretas, mas a assertiva II não é uma justificativa para a assertiva I.

Referências:

OPPENHEIM, Allan V.; WILLSKY, Alan S. Sinais e sistemas. 2. ed. São Paulo: Pearson,

2010.

HSU, H. P. Sinais e sistemas. 2. ed. Porto Alegre: Bookman, 2012.

QUESTÃO Nº 24

Heurísticas são regras para escolher aquelas alternativas que têm maior probabilidade de levar

uma solução aceitável para um problema. O grau de informação de uma heurística permite

avaliar em que sentido uma heurística é melhor que outra.

Para configurar os movimentos de um robô em uma linha de montagem, foram construídas

duas heurísticas, h1 e h2. Ambas são admissíveis, têm como objetivo encontrar a sequência de

montagem de menor custo a ser realizada pelo robô e estão baseadas em parâmetros, como

quantidade e complexidade de movimentos e custo de mudança de direção.

A partir das informações apresentadas, assinale a opção correta.

A) Se o erro de estimativa de h1 for menor que o erro de h2 para qualquer estado do

processo de montagem, o custo do caminho resultante de busca baseada em h1 será

menor que o da busca baseada em h2.

B) Se for construída uma heurística h3= máximo (h1, h2), a heurística h3 terá um grau de

informação maior ou igual a h1 e h2, para qualquer estado do processo de montagem.

C) Se o grau de informação de h2 for superior ao grau de informação de h1, o número de

estados expandidos durante o processo de busca, utilizando-se h2, será inferior ao

número de estados expandidos utilizando-se h1.

D) Se as heurísticas h1 e h2 forem consistentes, a heurística h3= h1+ h2 será uma

heurística admissível e consistente para qualquer estado do processo de montagem.

E) Se a heurística h1 possuir um grau de informação igual a zero, o algoritmo de busca A*

irá se comportar como um algoritmo de busca guloso (greedysearch), do tipo melhor

primeiro (best first).

Gabarito: B

Tipo de questão: Difícil

Conteúdo avaliado: Conceitos e definições sobre heurísticas – Estrutura de dados II, Projeto e

Análise de Algoritmos e Inteligência Artificial.

Autor(a): Talles Marcelo Gonçalves de Andrade Barbosa

Comentário:

Trata-se de uma questão difícil, em razão da particularização adotada para as definições

apresentadas no preâmbulo. O objetivo da questão é comparar duas heurísticas (h1 e h2) e, para

isso, verifica se o estudante conhece e recorda-se dos seguintes conceitos: custo computacional,

admissibilidade, monotonicidade (ou consistência), dominância e, principalmente,

informedness, termo que suponho ter sido traduzido e/ou adaptado como sinônimo para “grau

de informação”. Entretanto, a redação do texto é vaga, incompleta e disfuncional, aumentando

muito e desnecessariamente a dificuldade de interpretação e o julgamento das assertivas.

Em relação às assertivas:

A) Esta alternativa tem como objetivo avaliar se o estudante compreende os conceitos

admissibilidade, monotonicidade e, portanto, consegue perceber qu podeexistir

independência entre as variáveis erro de estimativa e custo do caminho. Um método de busca é

monotônico se ele sempre alcança um determinado nó pelo menor caminho. Apenas a

admissibilidade, ou seja, a capacidade de não superestimar o custo de um caminho, não

garante que o custo de h1 é menor que o custo de h2 (g(h1) <g(h2)), quando a estimativa de

h(h1) é menor que h(h2). Além de admissíveis é preciso que ambas h1 e h2 sejam consistentes.

Outra forma de analisar esta alternativa é utilizar um contraexemplo e, assim, refutar a

afirmação supracitada. Para isso, sugiro a criação de um cenário no qual h1 seja estimada pela

quantidade de mudanças de direção, ou seja, a quantidade de peças fora do lugar, enquanto h2

seja estimada pela distância de manhattan. Desta forma, será possível verificar que em

determinados pontos do espaço de estados, há ausência de consistência, ou seja, h não

decrementa ao aproximar-se do objetivo final, mesmo havendo um único objetivo. Portanto, a

alternativa é incorreta.

B) A alternativa B exige que o estudante compreenda o conceito de dominância. Quando

h2(nó)>h1(nó) para qualquer nó, significa que h2 será sempre mais eficiente que h1. Ou seja,

h2 domina h1. Isto acontece porque h2 é mais informada que h1. Entretanto, em muitas

situações, existem várias heurísticas disponíveis, sem que haja dominância explícita. Neste

caso, uma nova heurística pode ser gerada conforme a relação h3 = max (h1, h2). Neste caso,

h3 terá maior dominância e claramente será a melhor escolha. Numa outra interpretação da

equação h3 = max (h1, h2) é possível dizer que h3 pode utilizar tanto h1 quanto h2, em acordo

com a demanda para cada nó, em cada momento. Portanto, a afirmação é verdadeira.

C) Esta alternativa vincula o grau de informação à capacidade de verificação dos elementos de

um espaço de estados. Ou seja, a heurística de busca é considerada mais informada quando

obtém mais informações sobre os elementos do espaço de estados. Para isso, precisa fazer a

expansão dos nós de uma árvore ou de um grafo, de forma não redundante. Isto é preconizado

pela doutrina, de forma muito tímida e particular. Assim, se o grau de informação de h2 é

maior que o de h1, a quantidade de estados expandidos por h2 será maior que h1. Logo, a

alternativa é incorreta.

D) Esta alternativa supõe que h3 é obtida da seguinte combinação c1h1 +c2h2. Entretanto, não

apresenta de forma suficiente as restrições que possam descrever c1 e c2, nem mesmo quanto à

linearidade desta relação. Obviamente, com c=1 e c2=1 observa-se que h3 satisfaça a condição

h3(n)=0 para os estados objetivos, mas, não é necessariamente admissível ou consistente, em

qualquer cenário. Portanto, a alternativa é incorreta.

E) Considerando a utilização do algoritmo A*, cuja função de avaliação pode ser descrita por

f(n) = g(n) + h(n), onde g(n) representa o custo real até o momento e h(n), o custo estimado

para o objetivo. Se h(n) = 0, f(n) =g(n), e, portanto, existe uma aproximação do algoritmo de

busca em largura. Para isso, é necessário considerar ainda que é unitário o custo entre um

determinado nó e o seu sucessor imediato. Para que houvesse aproximação do algoritmo de

busca gulosa g(n)=0 e f(n)=h(n). Portanto, a alternativa é incorreta.

Referências:

1. Coppin, B. Inteligência Artificial, Rio de Janeiro: LTC, 2010.

2. Luger F. G. Artificial Intelligence, Addsion-Wesley, 2005.

3. Russel, S.; Norvig P. Artificial Intelligence, 3a. ed. Prentice Hall, 2010.

4. Campello, E. R.; Maculan N. Algoritmos e Heurísitcas, EDUFF:Niterói, 1994.

QUESTÃO Nº 25

Um provedor de serviços de segurança de redes e sistemas distribuídos enumerou três

componentes de rede essenciais para a garantia da segurança de dados corporativos:

firewall de rede; sistemas de prevenção e detecção de intrusão; e gateways antivírus.

Acerca desses componentes de rede, assinale a opção correta.

A) Os gateways antivírus trabalham no nível da camada de rede e verificam o fluxo de

dados em busca de assinaturas de vírus conhecidas.

B) O firewall de rede deve ser configurado para detectar transferência de informação

através de um canal camuflado (covert channel) baseado em túneis.

C) Um firewall de camada de rede (network layer firewall) permite uma filtragem mais

detalhada dos dados que um firewall de camada de aplicação (application layer

firewall) ao custo de um pior desempenho.

D) Os sistemas de prevenção de intrusão são vistos como uma extensão de firewall e são

capazes de detectar anomalias de tráfego ou conteúdo malicioso antes que eles

alcancem a rede.

E) O sistema de detecção de intrusão é capaz de identificar ataques iniciados dentro da

rede protegida e agir proativamente para neutralizar a ameaça.

Gabarito: D

Tipo de questão: Fácil

Conteúdo avaliado: Segurança de Computadores e Sistemas Distribuídos

Autor(a): Anibal Santos Jukemura

Comentário

Item a: FALSO. Este item está incorreto devido à própria definição de gateways antivírus.

Esses tipos de equipamentos, normalmente appliances, fornecem mecanismos antivírus

integrados ao funcionamento principal do dispositivo, cuja principal função é bloquear

ameaças potenciais, antes que alcancem a rede. Para tanto, verificam o fluxo de dados em

busca de assinaturas de vírus conhecidas, utilizando um serviço de escaneamento em camada

de aplicação não em camada de rede, como afirma esse item.

Item b: FALSO. Esse item apresenta uma “confusão” de conceitos. Covert channel (canal

camuflado) refere-se a um tipo de ataque que apresenta como principal característica, a

capacidade de criar um mecanismo secreto e ilícito para transferência de informações entre

processos que supostamente não deveriam possuir permissão para execução de tal atividade,

dado um conjunto de definições de uma política de segurança implantada. Portanto, um

funcionamento de um firewall de rede não está vinculado ao funcionamento de um canal

camuflado, uma vez que sua principal atividade refere-se à aplicação de uma política de

segurança que restringe a passagem de um fluxo de entrada/saída de dados em uma rede de

computadores.

Item c: FALSO. Os conceitos estão trocados nesse item. Firewall de camada de aplicação

apresentam, em geral, custo de um pior desempenho e permitem filtragem mais detalhada de

dados, do que um firewall de camada de rede.

Item d: VERDADEIRO. A definição apresentada nesse item refere-se justamente a sistemas

de prevenção de intrusão (IPS - Intrusion Prevention System).

Item c: FALSO. Sistemas de detecção de intrusão (IDS – Intrusion Detection System)

apresentam como principal função a capacidade de identificar ataques iniciados “de fora para

dentro” de uma rede protegida. Normalmente são sistemas “de borda” que se localizam na

fronteira de uma rede de computadores e servem como uma linha de defesa à invasão externa,

agindo posteriormente à constatação (detecção) da tentativa de intrusão na rede protegida. Em

geral são passivos, “observando” (monitorando) a rede e gerando alertas aos administradores

de rede e não interferindo no fluxo de tráfego de rede. A questão de execução de ações pró-

ativas para neutralizar a ameaça (como bloqueios, por exemplo) está diretamente relacionada à

definição de mecanismos do tipo IPS (Intrusion Prevention System).

Referências:

KUROSE, James F.; ROSS, Keith W. Redes de Computadores e a Internet: uma abordagem

top-down. 6. ed. São Paulo: Person Addison Wesley, Brasil, 2015.

TANENBAUM, Andrew S. Redes de Computadores. Tradução da 5rd. Ed. em inglês. Pearson

Prentice Hall. 2011

STALLINGS, William. Segurança e criptografia de redes: princípios e práticas. 4. ed. São

Paulo: Prentice Hall, 2008.

QUESTÃO Nº 26

Estruturas de dados, tais como filas e pilhas, são utilizadas em diversas aplicações para

automação industrial por meio de linguagens de programação textuais. O texto estruturado (ST)

é uma das opções de linguagem de programação definidas pela norma IEC 61131-3. O trecho

de código a seguir foi implementado nesse contexto.

#define MAX 1000

struct eventos {

char ocorrencia[200];

char dataHora[50];

};

struct eventos eve[MAX];

int inicio = 0;

int fim = 0;

int processaEvento (struct eventos *recuperado) {

if (inicio == fim) {return - 1; }

else {

inicio++;

copiaEvento (recuperado, eve[inicio - 1]);

return 0;

}

}

int insereEvento (struct eventos *novo) {

if (fim == MAX){ return -1; }

else {

copiaEvento(eve[fim], novo);

fim++;

return 0;

}

}

É correto afirmar que a estrutura de dados e a funcionalidade desse código tratam-se de

A) uma fila que processo primeiro os eventos mais antigos.

B) uma pilha que processa primeiro os eventos mais antigos.

C) uma pilha que processa primeiro os eventos mais recentes.

D) uma pilha que processa os eventos na ordem escolhida pelo operador.

E) uma fila que processa os eventos de acordo com seu respectivo grau de prioridade.

Gabarito: A

Tipo de questão:

Conteúdo avaliado: Estrutura de Dados

Autor(a): Angélica da Silva Nunes

Comentário: #define MAX 1000

struct eventos {

char ocorrencia[200];

char dataHora[50];

};

struct eventos eve[MAX];

int inicio = 0;

int fim = 0;

Estre trecho de código criar um vetor de 1000 posições onde cada uma delas e

composta de uma estrutura do tipo evento. Tem também os controladores de início e fim, estes

controlam duas posições da estrutura.

Caso esta estrutura fosse usada para representar uma pilha, não seriam necessários dois

controladores de posição, somente um seria necessário dado o fato de que, em uma pilha a

entrada e retirada de valores é feita somente no topo da estrutura.

Desta forma das opções apresentadas resta somente os itens A e E.

int processaEvento (struct eventos *recuperado) {

if (inicio == fim) {return - 1; }

else {

inicio++;

copiaEvento (recuperado, eve[inicio - 1]);

return 0;

}

}

O método descrito acima retira elementos do início do vetor.

int insereEvento (struct eventos *novo) {

if (fim == MAX){ return -1; }

else {

copiaEvento(eve[fim], novo);

fim++;

return 0;

}

}

O método descrito acima insere elementos no fim do vetor.

Portanto os dois métodos implementados seguem a filosofia FIFO – primeiro a entrar é

o primeiro a sair – inclui no fim da estrutura de dados e retira do início.

Todo este código caracteriza um FILA. Nenhum dos dois métodos define prioridade de

retirada ou inclusão.

Portanto o item correto a ser escolhido é A – uma fila que processa primeiro os eventos

mais antigos.

Referências:

QUESTÃO Nº 27

Um sistema monitora o deslocamento de um carro por meio do registro em um banco de

dados, de segundo em segundo, das medidas de dois acelerômetros: um na direção

longitudinal do movimento do carro, outro na direção transversal.

O projeto desse sistema é decomposto em três subprojetos. O primeiro denominado

MÓDULO_1, formado por hardware e software, é embarcado no carro e dotado de

sistema de comunicação com a internet por GPRS. O segundo, MÓDULO_2, é um

projeto de software aplicativo executado em plataforma Android para tablet, smartphone

ou celular, para exibição de relatórios para usuários. O terceiro subprojeto,

MÓDULO_3, é formado por hardware e software e instalado em um servidor em nuvem

com conexão dedicada permanente com a internet.

O projeto tem as seguintes especificações:

● o MÓDULO_1 comunica-se com o MÓDULO_3 para enviar as leituras obtidas. Como

o carro nem sempre está em área de cobertura de celular, é possível que uma

comunicação possa enviar as leituras de até um dia inteiro;

● o MÓDULO_2 comunica-se com o MÓDULO_3 para obter os dados exibidos no

relatório;

● os relatórios indicam os valores máximos de velocidade e aceleração e as respectivas

posições do carro quando eles foram atingidos.

A partir dessas informações, avalie as informações a seguir.

I. O MÓDULO_1 deve ter capacidade de armazenamento de dados suficiente para um

dia de leituras, a serem enviadas para o MÓDULO_3.

II. Todos os subprojetos têm interface de comunicação pela internet e a interface com o

usuário é feita no MÓDULO_2.

III. O melhor local para se executar o processamento de dados para o relatório é o

MÓDULO_1, que está sempre conectado e tem maior capacidade de processamento.

IV. O melhor local para se instalar o banco de dados para as leituras é o MÓDULO_3, que

dispõe de maior capacidade de armazenamento e conexão permanente com a internet.

É correto apenas o que se afirma em

A) I e III.

B) II e III.

C) II e IV.

D) I, II e IV.

E) I, III e IV.

Gabarito: D

Tipo de questão: Fácil

Conteúdo avaliado: Raciocínio Lógico e Noções de Sistemas Distribuídos.

Autor(a): Talles Marcelo Gonçalves de Andrade Barbosa

Comentário:

O gabarito oficial assinala a afirmação III como incorreta. Este item assegura que “O melhor

local para executar o processamento dos dados para o relatório é o MÓDULO_1, que está

sempre conectado e tem a maior capacidade de processamento”.

O MÓDULO_1 é um dispositivo embutido num veículo cujo acesso remoto depende de

características técnicas e da área de cobertura alcançada pela rede de telefonia celular.

Em razão da tecnologia adotada (GPRS) e das condições de oferta de serviços é possível

perceber uma contradição entre a alternativa III e o atual estado da arte.

Ou seja, a alternativa III exige alta disponibilidade e afirma que o MÓDULO_1 tem maior

capacidade de processamento, o que de fato ainda não acontece quando se compara o acesso à

internet entre a rede de telefonia móvel com a rede dedicada. Também, é incorreto comparar a

capacidade de processamento dos processadores utilizados em propósito específico com

aqueles utilizados em sistemas de computação de propósito geral, em particular, utilizados para

suporte aos servidores de aplicação. Portanto, a despeito de outros requisitos omitidos pela

questão, como, por exemplo, segurança, consumo de energia, tamanho, massa e custo,

importantes para avaliar a descrição estrutural proposta para o sistema, a Alternativa III é

falsa.

Referências:

COULOURIS G. et al. Distributed Systems, 5a. Ed. Addison-Welley, 2012.

QUESTÃO Nº 28

Em pesquisa operacional, problemas da Programação Linear (PL) são aqueles para os quais a

função objetivo e as restrições são todas lineares. Um importante problema prático modelado

com PL é o problema do transporte.

Suponha uma situação em que tenhamos K portos, P1, P2, ... Pk , que irão suprir J mercados,

M1, M2, ... , Mj, com um certo produto. O porto Pi possui uma quantidade Si do produto, sendo

i=1, 2, ... ,K, e o mercado Mj deve receber pelo menos uma quantidade rj do produto, sendo j =

1, 2, ... , J. Considere que bij é o custo de transporte de uma unidade do produto do porto Pi para

o mercado Mj, e yij é a quantidade de produtos despachados do porto Pi para o mercado Mj. O

problema é suprir as necessidades dos mercados com o custo de transporte mínimo.

Com base na situação apresentada, avalie as afirmações a seguir.

É correto apenas o que se afirma em

A) I e II

B) II e IV

C) III e IV

D) I, II e III

E) I, III e IV

Gabarito: A

Tipo de questão: fácil

Conteúdo avaliado: Programação Linear

Autor(a): Marco Antônio Figueiredo

Comentário

O problema do transporte é clássico em PL.

Variáveis de decisão: yij, quantidade de produtos despachados do porto Pi, i=1,...,k ao mercado

Mj, j=1,...,J.

Então os itens I e II são verdadeiros, enquanto o item III é falso. Para o item IV, de acordo com

a restrição de demanda, a quantidade total despachada para o mercado Mj é y1j + y2j + ... + ykj,

que deve ser maior que rj e não necessariamente igual a K.yij. A propósito, para qual i? Dessa

forma, o item IV é falso. Portanto, a resposta é a letra A.

Referências:

A. C. B. Alves e M. A. F. Menezes. Introdução à pesquisa operacional. Goiânia: Editora da

PUC Goiás, 2010, 311p.

QUESTÃO Nº 29

A computação verde refere-se ao uso ambientalmente responsável de computadores e recursos

relacionados. Essas práticas incluem a implementação da eficência energética em CPUs,

servidores periféricos, bem como o consumo reduzidos de recursos e a destinação adequada de

lixo eletrônico.

HARRIS, J. G. Computing green IT best practices on regulations and industry initiatives, virtualization,

power management, materials recycling and telecommuting. London: emere o Pty Ltd, 2008 (adaptado)

Nesse contexto, avalie as asserções a seguir e a relação proposta entre elas.

I. Embora a virtualização contribua para a computação verde, o projeto e a gerência de

uma arquitetura virtualizada apresentam problemas.

PORQUE

II. Da virtualização podem decorrer problemas de segurança a partir de vulnerabilidades

no hospedeiro, além de potencialmente haver maior desgaste das máquinas servidores

e, portanto, maior custo de manutenção.

A respeito dessas asserções, assinale a opção correta.

A. As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.

B. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa

correta da I.

C. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.

D. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.

E. As asserções I e II são proposições falsas.

Gabarito: C

Tipo de questão: Fácil

Conteúdo avaliado:

Autor(a): Rafael Leal Martins

Comentário:

Apenas a afirmação II é falsa pois A virtualização também reduz custos operacionais com

hardware, segundo a Mcaffe (ref), “A virtualização reduz os custos operacionais e de hardware

em 50%”. Um número menor de servidores físicos ocasiona menos desgastes em peças físicas.

Referências:

MCAFFE. Virtualização, segurança, informações e gerenciamento. Disponível em:

<http://www.mcafee.com/br/solutions/virtualization/virtualization.aspx#vt=vtabOverview>.

QUESTÃO Nº 30

Considere que tenha ocorrido o vazamento de imagens íntimas, por meio de aplicativo de

comunicação instantânea de celular, disponibilizado por provedor de aplicações, sem

autorização das pessoas que aparecem nas imagens.

Nesse contexto, de acordo com a Lei n. 12.965/2014, conhecida popularmente como Marco

Civil da Internet, o provedor de aplicações de internet poderá:

A) ser responsabilizado se deixar de remover as imagens disponibilizadas, dentro dos seus

limites técnicos

B) ser declarado inocente, caso fique provado que as imagens foram disponibilizadas à

pedido da vítima.

C) mover uma ação contra a vítima, pelo uso indevido de seus serviços, por ela ter

disponibilizado imagens íntimas na rede.

D) tornar indisponíveis todas as imagens da vitima compartilhadas e disponíveis na

internet.

E) encerrar seu contrato com a vítima devido à falha de segurança ocorrida.

Gabarito: A

Tipo de questão: Fácil

Conteúdo avaliado: Ética, legislação, computador e sociedade.

Autor(a): Sibelius Lellis Vieira

Comentário:

De acordo com o artigo 21 do Marco Civil da Internet, in verbis “O provedor de aplicações de

internet que disponibilize conteúdo gerado por terceiros será responsabilizado subsidiariamente

pela violação da intimidade decorrente da divulgação, sem autorização de seus participantes,

de imagens, de vídeos ou de outros materiais contendo cenas de nudez ou de atos sexuais de

caráter privado quando, após o recebimento de notificação pelo participante ou seu

representante legal, deixar de promover, de forma diligente, no âmbito e nos limites técnicos

do seu serviço, a indisponibilização desse conteúdo”.

Portanto, no caso em tela, deve o provedor de aplicações remover as imagens disponibilizadas,

ou seja, tornar indisponível o conteúdo divulgado, nos limites técnicos do seu serviço, sob pena

de ser responsabilizado de forma subsidiária pela violação da intimidade. A alternativa A) é a

correta

Referências:

BRASIL. Lei n. 12.965/2014, de 23 de abril de 2014. Estabelece princípios, garantias, direitos

e deveres para o uso da Internet no Brasil. Disponível em

<http://www.planalto.gov.br/ccivil_03/_ato2011-2014/2014/lei/l12965.html>. Acesso em 23

de agosto de 2019.

LEITE, G.S. LEMOS, R. Marco Civil da Internet. Editora Atlas, 2014.

QUESTÃO Nº 31

Um dos maiores problemas identificados na área de gerenciamento de projetos de software é o

fato de que muitos desses projetos falham em atender ao cronograma, ao orçamento e a

qualidade do produto. Métodos ágeis vêm sendo cada vez mais utilizados para evitar esse tipo

de problema, pois se baseiam em princípios de adaptação e comunicação, ao contrário dos

métodos mais antigos, conhecidos como prescritivos, que priorizam a definição de processos

bem detalhados que sejam seguidos por toda a equipe.

Considerando esse contexto, avalie as asserções a seguir e a relação proposta entre elas.

I. A técnica de timeboxing consiste na fixação prévia, pela equipe, dos prazos para

execução do projeto, independentemente do seu ciclo de desenvolvimento.

PORQUE

II. É preferível ter os requisitos mais importantes incorporados ao projeto, no prazo definido, a

tentar incorporar todos eles e perder o controle do prazo, visto que os requisitos menos

importantes podem ser tratados nas etapas finais do ciclo de desenvolvimento do projeto.

A respeito dessas asserções, assinale a opção correta.

A) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.

B) As asserções I e II são proposições verdadeiras, mas a II não é justificativa correta da I.

C) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.

D) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.

E) As asserções I e II são proposições falsas.

Gabarito: D

Tipo de questão: Fácil

Conteúdo avaliado: Engenharia de software

Autor(a): Vicente Paulo de Camargo

Comentário:

A asserção I afirma que a técnica timeboxing permite efetuar uma fixação prévia dos prazos

para execução de um projeto independentemente do seu ciclo de desenvolvimento. No entanto,

o timeboxing é aplicado no processo DSDM (Dynamic Systems Development Method) – que é

um modelo ágil baseado em desenvolvimento iterativo e incremental. É derivado do processa

RAD e, portanto, é aplicado em ciclos extremamente curtos (Pressman), entre 60 e 90 dias, e

não em ciclos de desenvolvimento de software de qualquer tamanho. Isso torna falsa essa

asserção.

No entanto, asserção II é correta, visto que ela destaca a preferência pelos requisitos mais

importantes para serem incorporados nos prazos estabelecidos no projeto , deixando os menos

importantes para outras etapas.

Portanto, a alternativa correta é a D.

Referências:

Pressman, Roger s.Engenharia de Software.6ª. edição. São Paulo: McGraw-Hill, 2006.

Wazlawick, Raul Sidney. Engenharia de Software: conceitos e práticas. Rio de Janeiro:

Elsevier, 2013.

QUESTÃO Nº 32

A unidade de processamento gráfico (GPU, graphics processing unit), originalmente projetada

para síntese de imagens de alta qualidade, pode ser encontrada embarcada em uma placa de

vídeo dedicada ou integrada diretamente em uma placa-mãe. Entre as suas interfaces de

programação de aplicativos, destaca-se a API OpenGL. A versão OpenGL 4.0 abstrai a

arquitetura da GPU como um fluxo de renderização que consegue transformar uma

especificação dos vértices de objetos de interesse dados em um espaço vetorial para uma

imagem digital foto-realística, tirando máximo proveito dos circuitos dedicados de

renderização de primitivas básicas, como pontos, segmentos e triângulos. O diagrama a seguir

mostra que o fluxo de renderização passa por vários blcos de funções.

Com base no diagrama apresentado e no procedimento de renderização de imagens de malhas

triangulares, é correto afirmar que

(A) Os vértices das facetas triangulares de uma malha precisam ter suas coordenadas projetadas

no plano da imagem pela aplicação, antes do seu envio para o bloco Vertex Shader.

(B) Há procedimentos de otimização, como o descarte de facetas não visíveis e o recorte de

uma cena completa em uma subcena enquadrada pelas parâmetros de câmera, antes da

passagem para bloco de Rasterização.

(C) As coordenadas de textura devem ser associadas aos vértices da malha triangular quando se

deseja texturizá-la, pois essas coordenadas são utilizadas no bloco Vertex Shader para acesso

aos dados de textura.

(D) O modelo de tonalização de Phong, que consiste na interpolação dos vetores normais

atribuídos aos vértices, deve ser programado no bloco Vertex Shader para se computar a cor da

superfície da malha renderizada.

(E) As informações referentes a posições, cores, vetores normais da superfície, coeficientes do

material da superfície e coordenadas de textura dos vértices são suficientes para geração de

uma imagem foto-realística.

Gabarito: B

Tipo de questão: Difícil

Conteúdo avaliado: Computação Gráfica

Autor(a): Nágela Bitar Lôbo

Comentário:

(A) INCORRETA. Os vértices das facetas triangulares de uma malha precisam ter suas

coordenadas projetadas no plano da imagem pela aplicação, antes do seu envio para o bloco

Vertex Shader.

O aplicativo não projeta as coordenadas no plano da imagem, mas sim envia para o bloco

Vertex Shader os dados dos vértices (tais como posição) e as matrizes de transformações (da

projeção, visualização e modelo) para que o cálculo da projeção possa ser feito.

(B) CORRETA. Há procedimentos de otimização, como o descarte de facetas não visíveis e o

recorte de uma cena completa em uma subcena enquadrada pelas parâmetros de câmera, antes

da passagem para bloco de Rasterização.

(C) INCORRETA. As coordenadas de textura devem ser associadas aos vértices da malha

triangular quando se deseja texturizá-la, pois essas coordenadas são utilizadas no bloco Vertex

Shader para acesso aos dados de textura.

As coordenadas de textura são necessárias para a aplicação da textura e não para acesso aos

dados de textura,

(D) INCORRETA. O modelo de tonalização de Phong, que consiste na interpolação dos

vetores normais atribuídos aos vértices, deve ser programado no bloco Vertex Shader para se

computar a cor da superfície da malha renderizada.

O modelo de tonalização que consiste na interpolação dos vetores normais atribuídos aos

vértices trata-se do modelo de Gouraud e não do modelo de Phong.

(E) INCORRETA. As informações referentes a posições, cores, vetores normais da superfície,

coeficientes do material da superfície e coordenadas de textura dos vértices são suficientes para

geração de uma imagem foto-realística.

Tais informações não são suficientes para geração de uma imagem foto-realística, dado que a

ausência de informações sobre as luzes presentes na cena, suas intensidades e direções, dentre

outras, produzem imagem pouco reais.

Referências:

1. GOMES, Jonas; VELHO, Luiz. Fundamentos da Computação Gráfica. Rio de Janeiro:

Instituto Nacional de Matemática Pura e Aplicada. 2008.

2.https://www.cs.utexas.edu/users/fussell/courses/cs354/handouts/Addison.Wesley.OpenGL.Pr

ogramming.Guide.8th.Edition.Mar.2013.ISBN.0321773039.pdf

QUESTÃO Nº 33

A política de segurança e as ferramentas para sua implementação em um banco de dados é,

atualmente, um assunto de grande importância para toda organização que faz uso de sistemas

computacionais no seu dia a dia. Não somente a vulnerabilidade a ataques de hackers ou

usuários não autorizados, mas também o controle sobre o acesso restrito a determinadas

informações em um banco de dados.

Nesse contexto, avalie as informações a seguir.

I. Os comandos GRANT, DENY e REVOKE são responsáveis por

definir as permissões de acesso dos usuários e grupos aos diversos

elementos do esquema de um banco de dados.

II. Caso o usuário UserA, integrante de grupo Group1, receba a

permissão GRANT SELECT em uma tabela tblDados, e o Group1

receba uma permissão DENY SELECT na mesma tabela tblDados, o

usuário UserA conseguirá realizar consultas nessa tabela.

III. É vedado a um usuário, tendo recebido determinado grupo de

permissões em uma tabela, transmitir esses privilégios para outros

usuários.

É correto o que se afirma em

A) I, apenas.

B) II, apenas.

C) I e III, apenas.

D) II e III, apenas.

E) I, II e III.

Gabarito: C

Tipo de questão: Difícil

Conteúdo avaliado: Segurança de acesso em banco de dados

Autor(a): Ronaldo Lopes de Oliveira

Comentário: A questão trata de mecanismos de garantia de segurança de acesso aos dados de

um banco de dados relacional por meio de concessão de privilégios em determinados objetos

para determinados usuários e grupos. A questão menciona o comando DENY que não faz parte

do padrão SQL-92, não é implementado por todos os SGBDS relacionais e nem é tratado na

maioria dos livros didáticos que são tradicionalmente utilizados como referência nas disciplinas

de banco de dados. Este fato torna a questão difícil para os participantes do ENADE.

Com relação à resolução da questão as seguintes considerações são fundamentais.

1. O comando GRANT concede privilégios de acesso a tabelas para usuários

individuais e/ou grupos de usuários com mesmo perfil de direitos de acesso.

2. O comando REVOKE revoga privilégios de acesso já concedidos para usuários e/ou

grupos.

3. O comando DENY, nos Sistemas Gerenciadores que o implementam, nega

explicitamente privilégios para usuários individuais e/ou grupos de usuários e impede que

esses usuários individuais ou grupos herdem a permissão dos privilégios negados. Para tal,

o comando DENY tem precedência/prioridade sobre todas as outras concessões dadas.

4. A concessão de privilégios para um usuário individual ou grupo de usuários não

habilita o repasse desses privilégios para outros usuários individuais e/ou grupos a menos

que seja utilizada a opção WITH GRANT OPTION na execução do comando GRANT.

Observadas essas considerações, fica claro que as afirmações corretas são as afirmações I e III

do enunciado.

Referências:

· DATE, C. J.; DARWEN, Hugh. A guide to the SQL standard: a user's guide to

the standard database language SQL. 4th ed. Reading: Addison-Wesley, 1997.

· STANEK, William R. Guia de Bolso do Administrador Microsoft SQL SERVER

2005

· ELMASRI, Ramez. Sistemas de banco de dados. 6. ed. São Paulo: Pearson

Addison Wesley, 2012.

· KORTH, Henry; SILBERSCHATZ, Abraham. Sistema de banco de dados. 6. ed.

Rio de Janeiro: Campus, 2012.

QUESTÃO Nº 34

O envelhecimento é um conjunto de alterações físicas e fisiológicas, como perda de memória,

perda de coordenação e habilidades motoras finas, diminuição da capacidade auditiva, da

sensibilidade tátil e da acuidade visual. Levando em consideração os principais elementos de

interface dos modelos de smartphones dominantes no mercado, como tela sensível ao toque,

gavetas de aplicativos representados por ícones e realimentação auditiva, a usabilidade desses

modelos pode dificultar a acessibilidade dos idosos ao ambiente hipermídia móvel

proporcionado por eles.

Disponível em: <http://www.periodicos.puc-rio.;br>. Acesso em: 6 jul. 2017 (adaptado)

Considerando esse contexto, avalie as asserções a seguir e a relação proposta entre elas.

I. O baixo nível de acessibilidade da população idosa aos smartphones revela a exclusão

social na terceira idade.

PORQUE

II. Os tipos de possibilidades de interação, também conhecidos como affordance, providos

pelos smartphones, têm um impacto negativo nos idosos em termo de usabilidade.

A respeito dessas asserções, assinale a opção correta.

A) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I

B) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta

da I

C) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.

D) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira

E) As asserções I e II são proposições falsas

Gabarito: D

Tipo de questão:

Conteúdo avaliado: Interface Homem Máquina

Autor: Rafael Leal Martins/André Luiz Alves

Comentário: A afirmativa I é falsa, pois há uma grande adesão de idosos ao uso dos

smartphones. A parcela da população de idosos que usavam a internet cresceu 25,9% de 2016

para 2017, aponta o recorte de Tecnologia da Comunicação e Informação da Pesquisa Nacional

por Amostra de Domicílios (Pnad) Contínua, do IBGE, divulgada nesta quinta-feira. Todas as

faixas etárias pesquisadas avançaram, contudo, foi entre as pessoas com mais de 60 anos que o

crescimento foi maior.

Em 2016, 24,7% desta população usavam a internet, e passaram a ser 31,1% no ano passado.

Adriana Beringuy, responsável pela pesquisa, ressalta que isso representa um aumento de 2,3

milhões de usuários nesse grupo, enquanto essa faixa etária ganhou 1 milhão de pessoas no

mesmo período.

A afirmativa II é verdadeira, pois o a grande variedade de possibilidades de interação é uma

queixa constante dos usuários dessa faixa etária pois paradoxalmente aumenta a sensação de

complexidade de uso dos dispositivos.

Referências:

https://oglobo.globo.com/economia/idosos-sao-grupo-que-mais-cresce-entre-os-usuarios-de-

internet-aponta-pnad-2017-23316773

http://www.biblioteca.pucminas.br/teses/Inform%C3%A1tica_MolAM_1.pdf

QUESTÃO Nº 35

Em um algoritmo de roteamento de estado de enlace, a topologia da rede e todos os custos de

enlace são conhecidos. Isso é alcançado fazendo-se cada nó transmitir pacotes de estado de

enlace a todos os outros nós da rede, uma vez que cada um desses pacotes contém as

identidades e os custos dos enlaces ligados a ele. O resultado dessa transmissão dos custos por

difusão é que todos os nós dispõem de informações idênticas e completas da rede. Cada nó

pode, então, rodar o algoritmo de estado de enlace e calcular o mesmo conjunto de caminhos

de menos custo para todos os outros nós.

O algoritmo de Dijkstra pode ser usado para calcular o caminho de menor custo entre um nó de

origem e todos os outros nós da rede. Durante sua execução, este algoritmo atualiza o vetor D,

sendo D(v) o custo do caminho de menor custo entre o nó de origem e o nó v.

KUROSE, J. F. Redes de computadores e a Internet: uma abordagem

top-down. São Paulo: Pearson Education do Brasil, 2013 (adaptado)

O grafo a seguir representa uma rede de roteadores. As arestas são rotuladas com os

respectivos custos de cada ligação.

Após a execução do algoritmo de Dijkstra pelo roteador de número 1, o vetor D retornou

contendo os seguintes valores:

Nesse cenário, quais são os custos das arestas A, B, C, D, E e F, respectivamente?

A) 1,2,3,2,4 e 1

B) 1,2,1,2,1 e 4

C) 2,1,1,4,2 e 1

D) 2,1,3,1,2 e 1

E) 1,1,3,4,1 e 1

Gabarito: C

Tipo de questão: Médio

Conteúdo avaliado: Redes de Computadores

Autor(a): Sibelius Lellis Vieira

Comentário:

O vetor D indica o menor custo do roteador 1 até todos os outros roteadores, 2 a 7, seguindo o

menor caminho atualizado pela soma dos custos dos enlaces deste caminho. Portanto, do

roteador 1 para ele mesmo o custo é zero, como observado na primeira coluna do vetor.

Na segunda coluna, o custo de 1 para 2 é 3, e como o enlace direto de 1 para 2 tem custo 4, o

menor caminho de 1 para 2 é passando pelo roteador 3.

Portanto, A+B=3 e como o custo de 1 para 3 é 2, A = 2. Portanto, B=1. O menor caminho de 1

para 4 custa 4, e para que isso seja possível, como o menor caminho de 1 para 2 custa 3, e de 3

para 4 custa C, temos que 3+C=4, ou seja, C=1.

Como o custo do roteador 1 até o 5 é 5, o valor de D não é importante, desde que 2+D >= 5.

Portanto, D>=3. O custo de 1 até 6 é 7, o que implica em 5 + E = 7, ou seja, o custo até 6 é o

custo até 5 mais o custo do enlace E, o que é possível atribuindo a E o valor 2. Finalmente, o

custo do roteador 1 até o roteador 7 é 8, levando à 7 + F = 8, ou seja, F = 1. Portanto, A=2,

B=1, C=1, D=4, E = 2 e F=1 satisfaz a restrição imposta pelo algoritmo, o que significa ser

correta a alternativa C.

Referências:

TANENBAUM, Andrew; WETHERHALL, David. Redes de computadores. 5. ed. São

Paulo: Campus, 2011.