Buscar

Avaliação On-Line 5 (AOL 5) - Questionário (Tópicos Integradores II - ADS) (1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

Pergunta 1 
1/1 
 
A pilha é uma estrutura de dados homogênea, que se comporta mais ou menos da mesma 
forma que uma pilha do mundo real, tendo seus dados organizados na estrutura LIFO (Last in 
First Out). Uma das aplicações das pilhas é no algoritmo de busca de grafos, no DFS que busca 
por profundidade, onde sua busca aplica-se em receber um vértice e retornar todos os caminhos 
atrelados a partir dele. 
Analise a situação a seguir: 
 
public void buscaDFS(Grafo_MA adj) { /*Grafo_MA adj é matriz de adjacência*/ 
 this.resetar(adj); 
 Stack<Vertice> pilha = new Stack<>(); 
 adj.getNo(0).setVisitado(true); 
 pilha.add(adj.getNo(0)); 
 System.out.print(adj.getNo(0).getNome()); 
 while (!pilha.isEmpty()) { 
 /*chamada da função getIDVizinhos com argumentos de matriz de adjacência e o índice do 
topo da pilha*/ 
 DECLARAÇÃO IDVIZINHO 
 if (idVizinho == -1) { 
 pilha.pop() 
 ;} else { 
 adj.getNo(idVizinho).setVisitado(true); 
 pilha.push(adj.getNo(idVizinho)); 
 System.out.print("," + adj.getNo(idVizinho).getNome()); 
 } 
 } 
} 
 
Com base nessas informações e no conteúdo estudado, o código que corresponde à declaração 
de idVizinho no DFS é: 
 
a. int idVizinho = this.getIDVizinhos (pilha.peek ().getIndice (),pilha.peek ().getIndice ()); 
b. int Vizinho = this.getIDVizinhos (0, pilha.peek ().getIndice ()); 
c. int idVizinho = this.getIDVizinhos (adj, pilha.peek ().getIndice ()); [RESPOSTA 
CORRETA] 
d. int idVizinho = this.getVertices (pilha.peek ().getIndice (), pilha.peek ().getIndice ()); 
e. int idVizinho = this.getVertices (adj,pilha.peek ().getIndice ()); 
 
Pergunta 2 
1/1 
 
As estruturas de dados homogêneas são estruturas que possuem indexação por 
profundidade, porém com apenas uma tipagem. No caso de matrizes e vetores, 
independentemente do tamanho “N” que possuam, eles sempre terão a mesma tipagem. 
Por isso, existem diversas aplicações para essas estruturas, sendo uma delas na forma 
computacional de manipular um grafo. Na classe grafo, temos os vértices e a matriz de 
adjacência, que deve ser populada para possuir as arestas. Porém, o grafo em si é iniciado 
ao executar o construtor, pois este define os tamanhos da matriz da classe. 
 
Analise a situação a seguir: 
 
class Grafo 
{ 
private Vertice nos []; 
 private int matriz [] []; 
 public Grafo (Vertice nosaux []) 
 { 
 ... 
 } 
} 
 
Com base nessas informações e no conteúdo estudado, podemos dizer que a linha que 
corresponde ao comando do construtor do código acima é: 
 
a. noaux = nos; matriz = new int [nos.length] [nos.length]; 
b. nos = nosaux; matriz = new int [10] [10]; 
c. nosaux = nosaux; matriz = new int [nosaux.length] [nosaux.length]; 
d. nos = nosaux; matriz = new int [nosaux.length] [nosaux.length]; [RESPOSTA 
CORRETA] 
e. nos = nos; matriz = new int [nos.length] [nos.length]; 
 
Pergunta 3 
1/1 
 
As tabelas hash podem ser desenvolvidas à mão, porém, no Java existe a chamada API 
Collection, que auxilia na aplicação desta estrutura sem necessariamente precisar criar do 
zero, através da interface SET<T> com a instanciação da classe HashSet<T> (). Embora 
esteja usando a interface SET, os comandos para inserir, editar, pesquisar e remover 
possuem, basicamente, a mesma sintaxe para quase todas as coleções. 
Analise a situação a seguir: 
 
import java.util.HashSet; 
import java.util.Set; 
 
public class Prj_Hash { 
 public static void main(String args[]) 
 { 
 Set<Integer> hasht=new HashSet<Integer>(); 
 hasht.add(100); 
 System.out.println("remover:"+hasht.remove(100)); 
 System.out.println("contains:"+ hasht.contains(100)); 
 } 
} 
 
Assim, considerando as informações apresentadas e os conteúdos estudados, analise as 
operações a seguir e associe-as às suas respectivas características: 
 
1) add 
 
2) remove 
 
3) contains 
 
4) iterator 
 
5) isEmpty 
 
I. ( ) Remove elementos da estrutura 
 
II. ( ) Retorna um objeto navegável através de um padrão de projeto 
 
III. ( ) Retorna se contém elementos na estrutura ou não 
 
IV. ( ) Busca elementos na estrutura 
 
V. ( ) Insere elementos na estrutura 
 
Agora, assinale a alternativa que apresenta a sequência correta: 
 
a. 2, 4, 5, 1, 3. 
b. 2, 5, 4, 3, 1. 
c. 5, 4, 2, 3, 1. 
d. 1, 2, 4, 3, 5. 
e. 2, 4, 5, 3, 1. [RESPOSTA CORRETA] 
 
Pergunta 4 
1/1 
 
A busca por profundidade no grafo é uma das principais que podem ser executadas. Ela 
necessita da matriz de adjacência para poder percorrer os vértices. A busca por profundidade é 
conhecida por percorrer até o último vizinho de um vértice por vez, ou seja, percorre todo o 
caminho até o final de um vizinho, vai para o próximo e segue até o fim. 
Analise a situação a seguir: 
 
BQ04 - Tópicos Integradores II(ADS) - Questão 8.PNG 
Com base nessas informações e no conteúdo estudado, podemos dizer que o comando que 
retorna o resultado da busca DFS em A é: 
 
a. B-C-E [RESPOSTA CORRETA] 
b. B-E-D 
c. B-D-E 
d. B-C-D 
e. E-C-D 
 
Pergunta 5 
1/1 
 
Existem muitas formas de navegação dentro de um grafo. Uma das mais comuns é a matriz de 
adjacência, uma matriz que possui o mesmo número de linhas e de colunas – ou seja, quadrada 
– e sua quantidade de elementos, tanto linhas quanto colunas, é o total de vértices do grafo. 
Nesse sentido, toda matriz de adjacência sempre será bidimensional. Essa é uma das principais 
formas de visualização de grafos dentro dos algoritmos, onde estes recebem a matriz e fazem o 
processamento pelas ligações dos vértices. 
Analise a situação a seguir: 
 
BQ04 - Tópicos Integradores II(ADS) - Questão 4.PNG 
Com base nessas informações e no conteúdo estudado, dizemos que o grafo que corresponde a 
essa matriz é: 
 
a. G-F-X. 
b. F-G-X. 
c. X-F-G. 
d. F-X-G​. ​[RESPOSTA CORRETA] 
e. F-X e G isolado. 
 
Pergunta 6 
1/1 
 
Uma ArrayList é uma estrutura da Api Collection que trabalha com alocação dinâmica, possui 
aplicação em diversas situações e regras de negócio. No caso dos grafos, sua aplicação pode 
se dar na representação da lista de adjacência. A lista de adjacência é um formato de 
representação de grafo, que recebe do grafo um nó e as ligações (ou vizinho) de um nó e os 
aloca. Quando se trata da alocação de vizinhos, que pode ser fixa ou variável, a lista encadeada 
ou uma estrutura dinâmica é necessária para poder alocar os vizinhos de um nó. 
Com base nessas informações e no conteúdo estudado, podemos dizer que o comando usado 
para adicionar os vizinhos em uma lista de adjacência é: 
 
a. setAresta (0, new ArrayList <> (Arrays.asList (new Vertice []{new Vertice 
("B",1)})));​ ​[RESPOSTA CORRETA] 
b. setAresta (0, new Arrays.asList (ArrayList <> (new Vertice []{new Vertice ("B",1)}))); 
c. setAresta (0, new Vertice <> ({new Vertice ("B",1)})); 
d. setAresta (0, new Arrays.asList (ArrayList <> (new Vertice []{new Array("B",1)}))); 
e. setAresta (0,1); 
 
Pergunta 7 
1/1 
 
A busca sequencial é uma das formas mais simples de trabalhar a estrutura de dados. Seu 
algoritmo geralmente é um loop e não possui critérios com relação a busca em si. O que temos 
é somente uma condição para encontrar o dado dentro do algoritmo. Este formato de busca 
chama-se sequencial, pois percorre todos os elementos da estrutura de forma estática e pode 
ser usado em vetores e matrizes de forma dinâmica, percorrendo posições de memória ou 
retornando endereços de objetos diferentes de nulo. 
Analise a situação a seguir: 
for(int i=0;i< 5; i++) 
for(int j=i+1;j< 10; j++) 
if( ... ) 
System.out.println("Dado:"+buscar+" localizado"); 
Com base nessas informações e no conteúdo estudado, podemos dizer que a alternativa que 
corresponde ao comando IF acima é: 
sas informações e no conteúdo estudado, podemos dizer que a alternativa que corresponde 
ao comando IF acima é: 
 
a. buscar = numeros[j]. 
b. buscar == numeros[i][j].​ ​[RESPOSTA CORRETA] 
c. buscar == numeros[j][i]. 
d. buscar = numeros[i][j]. 
e. buscar = numeros[i]. 
 
 
Pergunta 8 
1/1 
 
Uma das formas de navegar no grafo é através da lista deadjacência, que possui dois atributos: 
o vértice e a lista de vizinhos. Em vez de armazenar as arestas, armazena os vizinhos. Uma das 
vantagens da lista de adjacência é que ela não utiliza uma matriz como base e, portanto, pode 
ter tamanho indefinido. 
Analise a situação a seguir: 
 
public ArrayList buscarVizinhos (Vertice noaux) 
{ 
return 
new ArrayList <> (arestas [noaux.getIndice () ]); 
} 
 
No código-fonte acima, há uma criação estática, ou seja, com quantidades fixas de vértices. Foi 
utilizado um vetor de arestas para poder alocar os vizinhos. 
Com base nessas informações e no conteúdo estudado, podemos dizer que o comando utilizado 
para buscar o vizinho de um nó é: 
 
a. buscarVizinhos (1); 
b. buscarVizinhos (new Vertice ("A",1)); ​ ​[RESPOSTA CORRETA] 
c. buscarVizinhos (new int [1] [1]); 
d. buscarVizinhos (new Aresta (1)); 
e. buscarVizinhos (new Grafo (1)); 
 
Pergunta 9 
1/1 
 
A pesquisa de dados é um tópico da estrutura de dados que envolve o estudo dos algoritmos 
para sequências numéricas, seja ordenada ou desordenada, em ordem crescente ou 
decrescente. Neste aspecto surge, dentro da pesquisa de dados, uma ferramenta chamada 
análise assintótica, que recebe um algoritmo e, pelas próprias instruções, nos fornece uma 
fórmula matemática para analisar graficamente o comportamento deste algoritmo, em seu pior 
caso, no computador. 
Com base nessas informações e no conteúdo estudado, podemos dizer que o melhor algoritmo 
em pesquisa de dados, de acordo com sua fórmula, é: 
 
a. O(1). [RESPOSTA CORRETA] 
b. O(N^2). 
c. O(N/2). 
d. O(N). 
e. O(N^3). 
 
 
Pergunta 10 
1/1 
 
Uma das principais aplicações de grafos em um problema de logística é achar o menor caminho 
para várias entregas. No caso, cada ponto de entrega seria um vértice e cada rua, avenida ou 
caminho, seriam as arestas. Por ser um problema recorrente em grafos, existem diversos 
algoritmos para isso. Um deles se destaca por ser um dos mais simples para resolver este 
problema. Trata-se da árvore geradora mínima ou MST (Minimum Spanning Tree), que percorre 
os vizinhos até o fim e verifica se algum deles possui uma conectividade com os nós do grafo. 
Com base nessas informações e no conteúdo estudado, podemos dizer que o algoritmo usado 
no MST como forma de criar uma árvore geradora mínima é: 
 
a. BFS ou busca por largura. 
b. matriz de incidência. 
c. matriz de adjacência. 
d. DFS ou busca por profundidade. [RESPOSTA CORRETA] 
e. lista de adjacência.

Continue navegando