Baixe o app para aproveitar ainda mais
Prévia do material em texto
Parte superior do formulário Processando, aguarde ... Fechar Avaliação: CCT0174_AV1_201002006538 » ESTRUTURA DE DADOS Tipo de Avaliação: AV1 Aluno: 201002006538 - ANDRE DA SILVA BITENCOURT Professor: OSWALDO BORGES PERES RAFAEL DIAS RIBEIRO Turma: 9003/AH Nota da Prova: 5,0 de 8,0 Nota do Trabalho: Nota de Participação: 2 Data: 27/04/2013 08:10:17 1a Questão (Cód.: 27971) 2a sem.: Unidade 3 : Pontos: 0,5 / 0,5 Com relação as listas lineares sequenciais: I - Uma lista linear sequencial é um vetor em linguagens estruturadas, também chamado de array. II - Um elemento de uma lista linear sequencial pode ser acessado diretamente através de um índice. III - Uma lista linear sequencial pode ter elementos de um mesmo tipo, ou de tipos diferentes. Apenas as afirmações II e III estão corretas. Apenas as afirmações I e II estão corretas. Apenas as afirmações I e III estão corretas. Apenas as afirmações II está corretas. Apenas a afirmação I está correta. 2a Questão (Cód.: 30945) 3a sem.: Unidade 3: Pesquisa binária em listas lineares seqüenciais ordenadas Pontos: 0,0 / 1,0 Para consultarmos uma estrutura de dados, normalmente, empregamos um tipo de pesquisa de dados. O trecho de programa a seguir refere-se a uma pesquisa por um elemento único (sua primeira ocorrência), em um conjunto de elementos de dados armazenado em uma estrutura de acesso indexado e aleatório. Selecione a opção correspondente ao algoritmo utilizado, no programa, para a referida pesquisa: int busca(float v[], float valor, int n) { int ini = 0, fim = n -1, meio; while (ini <= fim) { meio = (ini + fim)/2; if (v[meio] == valor) return meio; if (valor < v[meio]) fim = meio -1; else ini = meio+1; } return -1; } pesquisa de cadeias pesquisa indexada pesquisa sequencial pesquisa cadeias indexada pesquisa binária 3a Questão (Cód.: 27782) 3a sem.: UNIDADE 3: ORDENAÇÃO Pontos: 0,5 / 0,5 Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada". Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio. Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio. É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente. Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos. Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o total de elementos. 4a Questão (Cód.: 27773) 5a sem.: UNIDADE 5: PILHA, FILA Pontos: 0,0 / 1,0 Ordene a coluna direita de acordo com a da esquerda, associando as características de implementação de cada: (Podem existir mais de uma opção à direita para alguma da esquerda) Indique a alternativa correta: c - a - a - b - c - b a - a - a - b - c - b a - c - a - b - c - a b - b - a - c - c - c a - b - a - c - c - b 5a Questão (Cód.: 31180) 3a sem.: UNIDADE 3 Pontos: 1,0 / 1,0 Existem vários algoritmos de busca em estruturas de dados, um destes realiza a busca em vetores, e requer acesso aleatório aos elementos desta estrutura e parte do pressuposto de que os dados do vetor estejam ordenados e utiliza a técnica de divisão e conquista comparando o elemento desejado com o elemento do meio do vetor. Esta técnica ainda verifica se o elemento do meio do vetor for o desejado, a busca termina. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor. O algoritmo que utiliza esta metodologia é: Bolha Seleção Pesquisa sequencial Pesquisa binária Inserção 6a Questão (Cód.: 28144) 2a sem.: Unidade 2 Pontos: 1,0 / 1,0 Com a utilização das estruturas de dados e seus tipos, em algumas situações é imprescindível a criação de funções que façam determinada verificação ou ação nestas estruturas. Dessa forma, analise a função abaixo e marque corretamente a alternativa que descreve as funcionalidades desta. int funcao(float v[], float vl, int n) { for (int i = 0; i < n; i++) if (v[i] == vl) return i; return -1; } Retorna o valor de vl se o valor n foi encontrado. Resulta em erro, se o valor de vl não estiver dentro de v. Retorna -1 se o valor de n foi encontrado. Retorna -1 se o valor de vl estiver dentro de v. Retorna a posição de v se o valor vl foi encontrado. 7a Questão (Cód.: 19663) 2a sem.: Unidade 2 : Funções e Unidade 3 : Listas Lineares Sequenciais Pontos: 0,5 / 0,5 Assinale a alternativa que apresenta duas formas de passagem de parâmetros para uma rotina ou função: Por teste e por reforço. Por valor e por referência Por memória e por disco. Por reforço e por referência. Por inferência e por valor. 8a Questão (Cód.: 28135) 5a sem.: Listas Pontos: 0,0 / 1,0 Analisando o trecho do algoritmo abaixo, pode-se afirmar que se trata de uma operação de: Remoção de um elemento de uma estrutura LIFO Inserção de um elemento em uma estrutura LIFO Remoção de um elemento de uma estrutura FIFO Inserção de um elemento em uma estrutura FIFO Exibição de um elemento em uma estrutura LIFO 9a Questão (Cód.: 19664) 5a sem.: UNIDADE 5: LISTAS LINEARES ENCADEADAS: PILHA (REPRESENTAÇÃO, OPERAÇÕES BÁSICAS E APLICAÇÃO). Pontos: 0,5 / 0,5 A técnica LIFO (last in first out), utilizada em programação estruturada, é fundamentada no conceito de: pilha loop array fila ponteiro 10a Questão (Cód.: 28128) 3a sem.: Unidade 3 Pontos: 1,0 / 1,0 Os métodos de ordenação são muito utilizados em estruturas de dados para facilitar a busca e a recuperação posterior de itens de conjuntos ordenados. Existem vários métodos de ordenação, por este motivo, marque corretamente a alternativa que apresenta o código do método de seleção. void ordena(int v[], int n){ int i, j, menor, aux; for (j = 0; j < n-1; j++) { for (i = j+1; i < n; i++) { if (v[i] < v[j]) { aux = v[j]; v[j] = v[i]; v[i] = aux; } } } } void ordena (int v[], int n){ int i, j, aux; for (j = 1; j < n; j++) for (i=j; i > 0 && v[i-1]> v[i]; i--){ aux = v[i-1]; v[i-1] = v[i]; v[i] = aux; } } int ordena(float v[], float valor, int n) { int ini = 0, fim = n-1, meio; while (ini >= fim){ meio = ini/2; if (v[meio] == valor) return meio; if (valor < v[meio]) fim = meio -1; else ini = meio+1; } int ordena(float v[], float valor, int n){ for (int i = 0; i < n; i++) if (v[i] == valor) return i; return -1; } int ordena(float v[], float valor, int n) { int ini = 0, fim = n -1, meio; while (ini <= fim){ meio = (ini + fim)/2; if (v[meio] == valor) return meio; if (valor < v[meio]) fim = meio -1; else ini = meio+1; } return -1; }
Compartilhar