Baixe o app para aproveitar ainda mais
Prévia do material em texto
15/03/2023, 09:13 Colaborar - Av2 - Algoritmos e Estrutura de Dados https://colaboraread.com.br/aluno/avaliacao/index/3377487802?atividadeDisciplinaId=14347027 1/5 Algoritmos e Estrutura de Dados (/aluno/tim… Av2 - Algoritmos e Estrutura de Dados Sua avaliação foi confirmada com sucesso (/notific × Informações Adicionais Período: 27/02/2023 00:00 à 10/04/2023 23:59 Situação: Cadastrado Tentativas: 2 / 3 Pontuação: 1500 Protocolo: 836802761 Avaliar Material 1) a) Conforme Celes, Cerqueira, Rangel (2004), tanto na função de Cálculo de endereços, como na função de Divisão, ao inserirmos um elemento na tabela e este elemento colide com outro elemento no endereço de índice, o elemento a ser inserido é armazenado no próximo índice disponível de própria tabela. Apresenta-se abaixo uma tabela de 10 posições e a seguinte sequência de chaves: 18, 77, 548, 195, 174, já inserida na tabela. Chave Cálculo da Função Endereço 18 (18 mod 10) 8 77 (77 mod 10) 7 548 (548 mod 10) 8 195 (195 mod 10) 5 174 (174 mod 10) 4 Diante da tabela apresentada acima e o tratamento em caso de colisão, escolha a Tabela de Espelhamento que representa os corretamente os dados apresentados. Alternativas: índice 0 1 2 3 4 5 6 7 8 9 valor 174 195 77 18 548 https://colaboraread.com.br/aluno/timeline/index/3377487802?ofertaDisciplinaId=1969754 https://colaboraread.com.br/notificacao/index javascript:void(0); 15/03/2023, 09:13 Colaborar - Av2 - Algoritmos e Estrutura de Dados https://colaboraread.com.br/aluno/avaliacao/index/3377487802?atividadeDisciplinaId=14347027 2/5 b) c) d) e) 2) a) b) índice 0 1 2 3 4 5 6 7 8 9 valor 18 77 548 195 174 índice 0 1 2 3 4 5 6 7 8 9 valor 174 195 548 18 77 índice 0 1 2 3 4 5 6 7 8 9 valor 174 195 77 18 548 Alternativa assinalada índice 0 1 2 3 4 5 6 7 8 9 valor 174 195 77 548 Segundo Silva (2007), na função linear, também conhecido como Overflow Progressivo, consiste em procurar a próxima posição vazia depois do índice-base da chave. É uma função que possui como vantagem a simplicidade em definir o índice da Tabela de Espalhamento. No entanto, sua desvantagem está no caso de ocorrerem muitas colisões, pode ocorrer um agrupamento (clustering) de chaves em um determinado índice. Isso pode fazer com que sejam necessários muitos acessos para recuperar um determinado elemento. Pode-se observar o esquema de Função de Espalhamento Linear, utilizando o método de divisão para encontrar o índice. Abaixo encontramos um exemplo da Função de Espalhamento Linear. Obs. as posições sem alocação de elementos são identificados com -1 (menos um). Sobre a Função de Espalhamento Linear e utilizando o método de divisão para encontrar o índice analise as afirmações abaixo. I - Se utilizarmos a tabela apresentada e inserirmos o elemento 24, o índice onde ele será inserido será o 1. II - Se utilizarmos a tabela apresentada e inserirmos o elemento 24 e logo em seguida o elemento 40, os índices onde eles serão inseridos são o 1 e o 2 respectivamente. III - Se utilizarmos a tabela apresentada e inserirmos o elemento 24, depois o 40 e logo em seguida o elemento 48, os índices onde eles serão inseridos são o 1, 2 e 6 respectivamente. IV - Se utilizarmos a tabela apresentada e inserirmos o elemento 23, o índice onde ele será inserido será o 6. Agora, assinale a alternativa que apresenta a correta: Agora assinale a alternativa correta. Alternativas: Apenas a afirmativa IV está correta. Apenas as afirmativas I e IV estão corretas. 15/03/2023, 09:13 Colaborar - Av2 - Algoritmos e Estrutura de Dados https://colaboraread.com.br/aluno/avaliacao/index/3377487802?atividadeDisciplinaId=14347027 3/5 c) d) e) 3) Apenas as afirmativas II e III estão corretas. Apenas as afirmativas I, II e III estão corretas. Alternativa assinalada Apenas as afirmativas I, II, III e IV estão corretas. Quando você abre um navegador um processo é aberto no núcleo do sistema operacional. Já no sistema Android isso é diferente, mesmo seu núcleo Linux sendo capaz de executar múltiplos processos simultâneos, quando um aplicativo é aberto um processo é iniciado em uma máquina virtual chamada Dalvik. A figura abaixo representa a Arquitetura do SO Android. Fonte: Disponível em < https://de.wikipedia.org/wiki/Android_(Betriebssystem) > Acesso em 19 dez. 2017. Robson é o desenvolvedor líder de um projeto melhor e quer que sua equipe trabalhe com Android. Ele explica para sua equipe que para cada aplicativo executado em um dispositivo Android cria uma instância dentro da máquina virtual Dalvik e a execução de aplicativos em máquinas virtuais oferece uma série de vantagens. Após o contexto apresentado, analise as asserções abaixo. I - A gama de possibilidades facilita o trabalho dos programadores no processo de desenvolvimento de aplicativos Android. PORQUE II - As aplicações estão essencialmente em caixas separadas (cada aplicação em uma instância), na medida em que não podem prejudicar o sistema operacional ou outras aplicações caso a aplicação dê algum problema. Além disso, aplicativos em execução em uma máquina virtual não podem acessar diretamente o 15/03/2023, 09:13 Colaborar - Av2 - Algoritmos e Estrutura de Dados https://colaboraread.com.br/aluno/avaliacao/index/3377487802?atividadeDisciplinaId=14347027 4/5 a) b) c) d) e) 4) a) b) c) d) e) hardware do dispositivo. Este nível de abstração torna a plataforma de aplicativos neutra na medida em que nunca está ligada a nenhum hardware específico. Além dos recursos já apresentados o sistema Android possui uma vasta biblioteca de classes para que tudo funcione de forma integrada. A respeito dessas asserções, assinale a alternativa correta. Alternativas: as asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I. as asserções I e II são proposições verdadeiras, e a II é uma justificativa da I. Alternativa assinalada a asserção I é uma proposição verdadeira, e a II é uma proposição falsa. a asserção I é uma proposição falsa, e a II é uma proposição verdadeira. as asserções I e II são proposições falsas. Uma questão fundamental para o uso de Mapa Associativo é que as chaves devem ser únicas, não podendo existir dois alunos com o mesmo número de chamada, duas Notas Fiscais com o mesmo número ou duas pessoas com o mesmo número de documento CPF. Sobre a montagem, desenvolvimento e usos gerais para Armazenamento Associativo, apresenta-se as afirmativas abaixo, onde você deve assinalar V para o que for Verdadeiro e F para o que for Falso. ( ) - a utilização de estruturas de Armazenamento Associativo está presente em todos os tipos de sistemas, seja um simples sistema de cadastro de clientes de uma pequena loja até um sistema de grande porte de uma empresa multinacional. ( ) - Qualquer sistema que tenha um cadastro é passível de Armazenamento Associativo. ( ) - A utilização de Armazenamento Associativo pode ser aplicada também em um sistema bancário. Todos os clientes são identificados (chave) por um número de agência e número de conta. ( ) - Um Armazenamento Associativo tem como base o tipo de estrutura de tabelas na construção e como participação fundamental para o desenvolvimento de sistemas. Umas das principais aplicações é na construção de tabelas de símbolos, com plena utilização em compiladores e montadores. ( ) - Um mapa pode ser definido por fórmulas. Assinale a alternativa que apresenta a sequência correta: Alternativas: V – F – V – F – V V – V – V – V – F Alternativa assinalada V – V – V – F – F F – F – V – F – V V – F – F – V – V 15/03/2023, 09:13 Colaborar - Av2 - Algoritmos e Estrutura de Dados https://colaboraread.com.br/aluno/avaliacao/index/3377487802?atividadeDisciplinaId=14347027 5/5 5) a) b) c) d) e) O Mapa com Espalhamento é utilizado com muita frequência em sistema de parametrização de métodos, ou seja, um sistema que tenha ummétodo que pode receber um número diversificado de parâmetros com uma grande quantidade de nomes distintos. Após criada a implementada a estrutura do Mapa de Espalhamento, é necessário inicializa-la, como exemplo do trecho de código a seguir: HashMapa* hashmap_new(int size) { int i; HashMapa *hashmapa = (HashMapa*)malloc(sizeof(HashMapa)); hashmapa -> node_list = malloc(size * sizeof(HashmapNo*)); hashmapa -> cont_elemento = 0; hashmapa -> map_size = size; for (i = 0; i < size; i++) { hashmapa -> node_list[i] = malloc(sizeof(HashmapNo)); hashmapa -> node_list[i] = NULL; } return hashmapa;} Sobre a classe <hash_map>, assinale a alternativa correta. Alternativas: Ela ajuda a gerenciar uma sequência de elementos como uma Tabela de Espalhamento e possui compatibilidade com versões anteriores, como a classe <hash_map.h>. Alternativa assinalada Ela verifica a existência de uma chave no Mapa, calculando o índice da Tabela e procurando na Lista correspondente. Ela adiciona uma nova associação e caso a chave já exista no Mapa, ela retira a associação antiga antes de colocar a nova. Ela manipula o fluxo de dados padrão do sistema, como entrada, saída e saída de erros, é uma evolução da biblioteca padrão <stdio.h> Utiliza-se esta classe para identificar o tamanho do mapa e assim iniciar o desenvolvimento das tabelas de espelhamento.
Compartilhar