Buscar

AOL4_PROG_ESTRUT FIZ

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 8 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 8 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

Prévia do material em texto

Avaliação On-Line 4 (AOL 4) - 
Questionário 
 
Nota finalEnviado: 01/06/21 18:17 (BRT) 
9/10 
Conteúdo do exercício 
Conteúdo do exercício 
1. Pergunta 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));Syste
m.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: 
Ocultar opções de resposta 
1. 
2, 4, 5, 1, 3. 
2. 
2, 4, 5, 3, 1. 
Resposta correta 
3. 
1, 2, 4, 3, 5. 
4. 
2, 5, 4, 3, 1. 
5. 
5, 4, 2, 3, 1. 
2. Pergunta 2 
/1 
A função hash tem como objetivo tratar os dados como posição de memória. Sendo assim, um dado 
que não tenha comparações, possuirá apenas uma operação para busca em N dados. Essa função é 
muito utilizada em dicionários de palavras e outras coisas que precisam analisar muitos dados. Ao 
utilizar o hash na linguagem Java, cada variável ou objeto possuirá uma posição específica, pois essa 
numeração surge dos cálculos da JVM (Java Virtual Machine). 
Com base nessas informações e no conteúdo estudado, podemos dizer que a função para pegar o 
valor hash de um Objeto Pilha com a tipagem Integer da classe Stack é: 
Ocultar opções de resposta 
1. 
new Stack<Integer>.hashCode(); 
2. 
new Stack<Integer>().hashCode(); 
Resposta correta 
3. 
new Stack<Integer>().toHash(); 
4. 
new Stack().hashCode(); 
5. 
new Stack<Integer>().toHashCode(); 
3. Pergunta 3 
/1 
O hash é uma estrutura de dados que se fundamenta no conceito de hashing, que, resumindo, trata-se 
de uma série de cálculos de dados juntamente com a quantidade de espaços disponíveis em memória. 
Esta técnica é muito utilizada em criptografia de textos, números, dados em geral e até bits. As 
principais formas de criptografia provêm de uma variação do hashing que carrega não somente o 
dado, mas a quantidade de bits e constantes (variáveis estáticas), para poder criptografar um dado de 
forma única. 
Analise a situação a seguir: 
public static int getHashCode(int valor, int tamanho){ ---------------- return hashcode; } 
Com base nessas informações e no conteúdo estudado, podemos dizer que o cálculo do hashing do 
código acima é: 
Ocultar opções de resposta 
1. 
int hashcode = Math.random() * (valor / tamanho) * 10; 
2. 
int hashcode = valor % tamanho; 
Resposta correta 
3. 
int hashcode = valor + tamanho / tamanho; 
4. 
int hashcode = Math.pow(valor,tamanho); 
5. 
int hash = valor % tamanho; 
4. Pergunta 4 
/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: 
 
ESTRUT DADOS QUEST 08 UNID 4_v1.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 é: 
Ocultar opções de resposta 
1. 
E-C-D 
2. 
B-E-D 
3. 
B-D-E 
4. 
B-C-E 
Resposta correta 
5. 
B-C-D 
5. Pergunta 5 
/1 
O grafo é uma estrutura que contempla vértices e arestas. Sua estrutura não possui topologia ou 
ordem específica de inserção, remoção ou edição, pois um dos objetivos primordiais dos grafos é 
modelar um problema do mundo real. Por esse motivo, diversos tipos de grafos acabam coexistindo, 
cada um com suas características particulares. 
Analise a situação a seguir: 
As escalas da higienização de trens de 5 estações têm sido um grande problema para uma empresa 
de prestação de serviços. Foi sugerido que seu sistema corporativo tivesse uma funcionalidade que 
gerasse essas escalas automaticamente, de acordo com as seguintes regras: deve ser em horários de 
menor movimento, todos os vagões de um trem devem estar a 4 estações de igual tempo de distância 
um do outro. 
Com base nessas informações e no conteúdo estudado, uma das possibilidades de grafo para modelar 
esse case seria um: 
Ocultar opções de resposta 
1. 
grafo não conectado. 
2. 
grafo ponderado não conectado. 
3. 
grafo ponderado. 
4. 
grafo orientado. 
Resposta correta 
5. 
grafo ponderado não conectado. 
6. Pergunta 6 
/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 é: 
Ocultar opções de resposta 
1. 
setAresta (0, new Arrays.asList (ArrayList <> (new Vertice []{new Vertice ("B",1)}))); 
2. 
setAresta (0, new Arrays.asList (ArrayList <> (new Vertice []{new Array("B",1)}))); 
3. 
setAresta (0,1); 
4. 
setAresta (0, new Vertice <> ({new Vertice ("B",1)})); 
5. 
setAresta (0, new ArrayList <> (Arrays.asList (new Vertice []{new Vertice ("B",1)}))); 
Resposta correta 
7. Pergunta 7 
/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 é: 
Ocultar opções de resposta 
1. 
nosaux = nosaux; matriz = new int [nosaux.length] [nosaux.length]; 
2. 
noaux = nos; matriz = new int [nos.length] [nos.length]; 
3. 
nos = nosaux; matriz = new int [10] [10]; 
4. 
nos = nos; matriz = new int [nos.length] [nos.length]; 
5. 
nos = nosaux; matriz = new int [nosaux.length] [nosaux.length]; 
Resposta correta 
8. Pergunta 8 
/1 
A estrutura hash possui um dos melhores desempenhos dentro de uma grande estrutura de dados, 
pois sua notação de big O(1) é uma constante. Ou seja, para N dados, temos apenas um conjunto de 
instruções ase buscar. Porém, com a grande quantidade de dados, surge o problema da colisão, 
quando dados diferentes assumem o mesmo valor de hash. Existem formas de trabalhar o hashing 
para que isso não ocorra, porém, é preciso usar uma outra estrutura de dados para poder considerar 
um hash repetido de dados distintos. Uma das estruturas possíveis é a linkedlist, que faz a alocação 
do dado repetido ou aproximado dentro de um mesmo hash. 
Com base nessas informações e no conteúdo estudado, podemos dizer que a técnica utilizada para a 
colisão é: 
Mostrar opções de resposta 
9. Pergunta 9 
/1 
A busca binária, é uma busca que tem por objetivo receber uma estrutura ordenada e fazer uma 
comparação parcial do dado que é tratado com o tamanho da metade da sua estrutura, caso o dado 
seja maior que a metade da estrutura o algoritmo faz um loop na segunda metade da estrutura, caso 
seja menor faz um loop na metade da estrutura, esse formato elimina de um total de valores 
praticamente metade de comparações, tendo como tamanho O(n/2), pois independente de ter o dado 
ou não na estrutura somente vai percorrer uma metade. 
Agora, leia o código-fonte a seguir: 
public static boolean buscaBinaria(int[] vetor, int pesquisar) {if ( … ) {for (int pos = 0; pos < 
vetor.length; pos++) {if (pesquisar == vetor[pos]) {System.out.println("Localizado");return true;}}} 
else {for (int pos = vetor.length; pos > 0; pos--) {if (pesquisar == vetor[pos]) 
{System.out.println("Localizado");return true;}}}return false;} 
Considerando essas informações e o conteúdo estudado, a alternativa que corresponde ao comando 
IF do código acima é: 
Ocultar opções de resposta 
1. 
pesquisar <= vetor[(int) (vetor.length)]. 
2. Incorreta: 
pesquisar >= vetor[(int) (vetor.length)]. 
3. 
pesquisar == vetor[(int) (vetor.length / 2)]. 
4. 
pesquisar != vetor[(int) (vetor.length)]. 
5. 
pesquisar >= vetor[(int) (vetor.length / 2)]. 
Resposta correta 
10. Pergunta 10 
/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 é: 
Ocultar opções de resposta 
1. 
buscar == numeros[j][i]. 
2. 
buscar = numeros[i][j]. 
3. 
buscar = numeros[j]. 
4. 
buscar = numeros[i]. 
5. 
buscar == numeros[i][j]. 
Resposta correta

Continue navegando