Buscar

Avaliação On-Line 4 (AOL 4) Tópicos Integradores II (Ads) - 20211 B

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 11 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 11 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 9, do total de 11 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

Continue navegando


Prévia do material em texto

1. Pergunta 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 é:
Ocultar opções de resposta 
1. 
nos = nos; matriz = new int [nos.length] [nos.length];
2. 
nos = nosaux; matriz = new int [10] [10];
3. 
nosaux = nosaux; matriz = new int [nosaux.length] [nosaux.length];
4. 
nos = nosaux; matriz = new int [nosaux.length] [nosaux.length];
Resposta correta
5. 
noaux = nos; matriz = new int [nos.length] [nos.length];
2. Pergunta 2
/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 é:
Ocultar opções de resposta 
1. 
G-F-X.
2. 
X-F-G.
3. 
F-X e G isolado.
4. 
F-X-G.
Resposta correta
5. 
F-G-X.
3. Pergunta 3
/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>().toHash();
2. 
new Stack<Integer>().hashCode();
Resposta correta
3. 
new Stack<Integer>.hashCode();
4. 
new Stack<Integer>().toHashCode();
5. 
new Stack().hashCode();
4. Pergunta 4
/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 hash = valor % tamanho;
2. 
int hashcode = valor % tamanho;
Resposta correta
3. 
int hashcode = valor + tamanho / tamanho;
4. 
int hashcode = Math.pow(valor,tamanho);
5. 
int hashcode = Math.random() * (valor / tamanho) * 10;
5. Pergunta 5
/1
Uma das formas de navegar no grafo é através da lista de adjacê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ó é:
Ocultar opções de resposta 
1. 
buscarVizinhos (new Grafo (1));
2. 
buscarVizinhos (1); 
3. 
buscarVizinhos (new Vertice ("A",1)); 
Resposta correta
4. 
buscarVizinhos (new int [1] [1]); 
5. 
buscarVizinhos (new Aresta (1));
6. Pergunta 6
/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[i].
2. 
buscar == numeros[j][i].
3. 
buscar == numeros[i][j].
Resposta correta
4. 
buscar = numeros[i][j].
5. 
buscar = numeros[j].
7. Pergunta 7
/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. 
pesquisar >= vetor[(int) (vetor.length)].
3. 
pesquisar == vetor[(int) (vetor.length / 2)].
4. Incorreta: 
pesquisar != vetor[(int) (vetor.length)].
5. 
pesquisar >= vetor[(int) (vetor.length / 2)].
Resposta correta
8. Pergunta 8
/1
O HashMap é uma estrutura hash diferenciada, pois nela você é obrigado a setar o valor junto com sua posição de memória, no entanto ao instanciar um hashmap, deve-se passar via parâtro da declaração a tipagem do índice e a tipagem do valor, no caso do exemplo abaixo, o índice é integer e o dado também, podendo assumir diversos tipos inclusive um objeto tanto como índice como quanto valor. Por conta da particularidade da inserção do índice junto com o valor a add, no hashmap não é usado e sim o put(indice,valor) para poder alocar, e o uso do constains é diferenciado pois pode-se buscar tanto por chave usando a containsKey quanto por valor containsValue.Por este motivo o hashmap é democrático pois você pode criar as posições que desejar e assimtrazer mais agilidade ao programa caso necessite
Analise a situação a seguir:
import java.util.HashMap;
import java.util.Map;
public class Prj_HashMap  {
  public static void main(String args[])
  {
    Map<Integer,Integer> mapa=new HashMap<Integer,Integer>();
    mapa.put(1, 100);
    mapa.put(2, 200);
    System.out.println("remover:"+mapa.remove(2));
    System.out.println("contains por chave:"+ mapa.get(1));
    System.out.println("contains por chave:"+ mapa.containsKey(1));
    System.out.println("contains por valor:"+ mapa.containsValue(100));
    for(Integer aux: mapa.keySet() )
    {
    System.out.println(aux + "-" + aux.hashCode() + "-"+ mapa.get(aux) );
    }
  }
 }
Com base nessas informações e no conteúdo estudado, analise as afirmativas a seguir e identifique qual dela(s) corresponde(m) ao padrão iterator na navegação da estrutura Mapa.
I. Integer aux: mapa.keySet()
II. new HashMap<Integer,Integer>();.
III. mapa.
IV. mapa.get(aux).
V. mapa.getClass().
Está correto apenas o que se afirma em:
Ocultar opções de resposta 
1. 
IV e II.
2. 
V e III.
3. 
II e I.
4. 
III e IV.
5. 
I e IV.
Resposta correta
9. Pergunta 9
/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:
Ocultar opções de resposta 
1. 
2, 4, 5, 1, 3.
2. 
2, 4, 5, 3, 1.
Resposta correta
3. 
2, 5, 4, 3, 1.
4. 
5, 4, 2, 3, 1.
5. 
1, 2, 4, 3, 5.
10. Pergunta 10
/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, é:
Ocultar opções de resposta 
1. 
O(N^2).
2. 
O(N/2).
3. 
O(1).
Resposta correta
4. 
O(N).
5. 
O(N^3)