e.book: questÕes do enade comentadas …nesse contexto, escreva uma rotina em c (ansi) em que se...
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.