Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fechar Avaliação: CCT0174_AV2_201002141011 » ESTRUTURA DE DADOS Tipo de Avaliação: AV2 Aluno: 201002141011 - WELLINGTON PEREIRA DE OLIVEIRA Professor: ALEXANDRE SOARES ALVES Turma: 9002/AB Nota da Prova: 2,0 de 8,0 Nota do Trabalho: Nota de Participação: 2 Data: 19/11/2012 1a Questão (Cód.: 56256) Pontos: 0,0 / 1,5 Os agentes Leo e Lia receberam sequências de números de seus contatos. Para saberem qual o próximo passo da missão, precisam descobrir que números se repetem nas sequências recebidas por cada um. Faça uma função que receba dois vetores v e w de inteiros como parâmetros e gere um vetor z, resultante da interseção entre v e w. Protótipo da função : bool intersecao(int v[ ], int w[ ], int z [ ], int nv , int nw , int &n); onde nv: quantidade de elementos em v nw : quantidade de elementos em w n : quantidade de elementos no vetor z Note : Inicialmente n vale zero. Deverá ser retornado true (sucesso na interseção) ou false (fracasso na interseção). Resposta: bool intersecao(int v[ ], int w[ ], int z [ ], int nv , int nw , int &n) { n=0; for (int nv=v[i]; int nw=w[i]; int n=z[i]); if return true; else return false; } 2a Questão (Cód.: 51756) Pontos: 0,0 / 1,0 Com base nos principais elementos fornecidos pela biblioteca C++ padrão, marque a opção correta que resume todos os elementos dessa biblioteca: Listas, pilhas, filas,conjuntos e multiconjuntos, deques e filas com prioridade, mapas. Iteradores, vetores, listas, pilhas, filas, deques e filas com prioridade, mapas. Vetores, listas, pilhas, filas,conjuntos e multiconjuntos, deques e filas com prioridade, iteradores, vetores, listas, pilhas, filas,conjuntos e multiconjuntos, deques e filas com prioridade, mapas. Iteradores, pilhas, filas,conjuntos e multiconjuntos, deques e filas com prioridade, mapas. 3a Questão (Cód.: 56276) Pontos: 0,0 / 1,5 Considere duas listas simplesmente encadeadas circulares e não vazias de inteiros e o tipo struct no { int dado; struct no *link; }; Faça uma função para criar uma lista simplesmente encadeada não circular que seja constituída pelos elementos comuns às duas listas passadas. Protótipo : no *inter(no *x, no*y); Resposta: no *inter(no *x, no*y) { } 4a Questão (Cód.: 27753) Pontos: 1,0 / 1,0 Podemos dizer que estrutura de dados é: É a saída, que satisfaz a quaisquer restrições impostas pelo problema, necessária para se calcular uma solução do problema. O que permite o armazenamento e a recuperação de dados independentemente de seu conteúdo. A entrada, que satisfaz a quaisquer restrições impostas pelo problema, necessária para se calcular uma solução do problema. O meio para armazenar e organizar dados com o objetivo de facilitar o acesso e as modificações. Uma sequência de passos computacionais que transforma uma entrada em uma saída previamente determinada. 5a Questão (Cód.: 28115) Pontos: 0,5 / 0,5 A armazenagem de dados pode ocorrer temporariamente em uma variável, um vetor ou em uma estrutura chamada Struct na linguagem C e C++. Como se procede a atribuição de valor a um determinado campo de uma estrutura do tipo Struct? Nome da estrutura vírgula tipo do campo Nome da estrutura ponto tipo do campo Nome da estrutura ponto nome do campo Nome da estrutura seta nome do campo Nome da estrutura seta tipo do campo 6a Questão (Cód.: 28365) Pontos: 0,0 / 0,5 Observe o trecho de código em C/C++ a seguir. O laço for preenche os dados dos candidatos no vetor de selecionados. (adaptado para C/C++) 1.struct Candidato { 2. char nome[15]; 3. double nota; 4. }; 5. 6.int main(){ 7. struct Candidato selecionados[5]; 8. int i; 9. for (i=0; i<5; i++){ 10. cout << "Nome: "; 11. cin.get();cin.get(***********,15); 12. cout << "Nota: "; 13. cin >> ***********; 14. } 15. ... 16.} Observe que o código no interior dos comandos das linhas 11 e 13 foi substituido por ***********. Para que este programa compile e execute sem erros, os asteriscos nas linhas 11 e 13 devem ser substituídos respectivamente por: Candidato.nome[i] Candidato.nota[i] selecionados.nome[i] selecionados.nota[i] selecionados[i].nome selecionados[i].nota Candidato[i].nome Candidato[i].nota nome[i] nota[i] 7a Questão (Cód.: 27935) Pontos: 0,5 / 0,5 Sobre o funcionamento da busca binária, é incorreto afirmar que dividindo seu vetor em duas metades. Se o item for maior que o item que está na metade do vetor procure na segunda metade, ou seja, a da direita. Se o item for igual ao item que está na metade do vetor, o item não foi encontrado. Se o item for menor ao item que está na primeira posição do vetor, o item não foi encontrado. Se o item for igual ao item que está na metade do vetor, o item foi encontrado. Se o item for menor que o item que está na metade do vetor, procure na primeira metade, ou seja, a da esquerda. 8a Questão (Cód.: 28144) Pontos: 0,0 / 0,5 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 -1 se o valor de vl estiver dentro de v. Retorna o valor de vl se o valor n foi encontrado. Retorna -1 se o valor de n foi encontrado. Resulta em erro, se o valor de vl não estiver dentro de v. Retorna a posição de v se o valor vl foi encontrado. 9a Questão (Cód.: 28104) Pontos: 0,0 / 0,5 Para a criação de uma Fila seqüencial basta iniciar as variáveis de início e final, ou seja, apontá-las para as posições iniciais do vetor. O que alteraria na rotina de inserir se a variável final fosse inicializada com o valor -1 (menos um): Após a inserção deve-se fazer o decremento da variável final Antes da inserção deve-se fazer o incremento da variável final Após a inserção deve-se fazer o incremento da variável final Antes da inserção deve-se fazer o decremento da variável final Após a inserção deve-se fazer o incremento da variável inicio 10a Questão (Cód.: 27963) Pontos: 0,0 / 0,5 O resultado de um concurso foi armazenado por um programador em um vetor, onde cada elemento (descrito pela struct Candidato) possui a informação da matrícula e nota de cada candidato, conforme descrito a seguir. Deseja-se que o vetor com os resultados fique ordenado em ordem decrescente pela nota. O programador pretende usar o algoritmo de busca descrito a seguir, porém precisa de ajuda no trecho contendo ********. Indique a opção que contém a solução que completa as linhas 1, 3 e 7 do algoritmo. ... struct Candidato { char mat[10]; float nota; }; ... 1.void ordenaSelecao (******** v[], int n) { 2. int i, j, maior; 3. ******** aux; 4. for (j = 0; j < n-1; j++) { 5. maior = j; 6. for (i = j+1; i < n; i++) 7. if (********) 8. maior = i; 9. aux = v[j]; 10. v[j] = v[maior]; 11. v[maior] = aux; 12. } 13.} 1. struct Candidato 3. struct Candidato 7. v[i].nota > v[maior].nota 1. int 3. int 7. v[i] < v[maior] 1. int 3. int 7. v[i] > v[maior] 1. float 3. float 7. v[i] < v[maior] 1. struct Candidato 3. struct Candidato 7. v[i].nota < v[maior].nota
Compartilhar