Baixe o app para aproveitar ainda mais
Prévia do material em texto
Avaliação: CCT0174_AV1_201107032962 Tipo de Avaliação: AV1 Aluno: 201107032962 - DANIEL DIAS DOS SANTOS Professor: RAFAEL DIAS RIBEIRO Turma: 9005/AJ Nota da Prova: 2,5 de 8,0 Nota do Trabalho: Nota de Participação: 2 Data: 18/09/2012 1.) UNIDADE 2 Pontos: 0,5 / 0,5 As variáveis em programação são utilizadas para armazenar um valor de determinado tipo em um espaço reservado na memória. Em algumas linguagens de programação podemos declarar, ou seja, reservar um espaço na memória, fora do escopo da função principal, e fora do escopo de qualquer outra função. Ao fazer a declaração desta forma estamos declarando uma variável do tipo: Global Local Real Constante Inteiro 2.) UNIDADE 3 Pontos: 0,0 / 0,5 As estruturas de dados em programação são muito utilizadas para tornar o acesso aos dados mais eficiente e organizado. A estrutura de dados considerada mais simples e tem como característica apresentar apenas uma dimensão é: Matriz Função Registro Variável Vetor 3.) UNIDADE 3: Pontos: 0,0 / 0,5 Considere: I - Os algoritmos de busca binária e de busca seqüencial executam processamento repetitivo. II - Os algoritmos de busca binária e de busca seqüencial utilizam a técnica de recursão. III - A busca seqüencial executa cada fase de repetição na forma de uma subtarefa da fase anterior. IV - A busca binária trabalha com uma forma circular de repetição. Está correto o que consta em: (E) I e IV, apenas. (B) II, apenas. (A) I, apenas. (C) I e II, apenas. (D) I, II, III e IV. 4.) UNIDADE 3: Pontos: 0,0 / 0,5 O que acontece ao se inserir uma informação quando já usamos toda a área disponível do vetor (topo = fim)? remoção ordenação underflow overflow inclusão 5.) UNIDADE 2 : FUNÇÕES Pontos: 0,0 / 1,0 Dado o seguinte código, escrito em C++, qual a saída do programa? #include using namespace std; void func1 (float x) { cout << "X: "<< x << endl; x = 3.5; cout << "X: "<< x << endl; } int main () { float y=1.5; cout << y << endl; func1(y); cout << y << endl; return 0; } 1.5 1.5 1.5 1.5 0 1.5 1.5 0 1.5 1.5 3.5 1.5 1.5 1.5 3.5 1.5 0 6.) UNIDADE 2 Pontos: 0,0 / 1,0 Em programação podemos utilizar um recurso que modulariza o programa chamado função. As funções precisam ser ativadas para que possam ser executadas. Para isso, é necessário chamar a função pelo seu nome e enviar, quando necessário, os valores respectivos para os parâmetros de entrada. Ao enviar os valores para os parâmetros de entrada, o programa pode fazer uma cópia deste valor ou trabalhar em um endereço enviado. Quando se envia o endereço estamos ativando a função por meio de: Envio de inteiro. Passagem por valor. Registro. Envio de valor. Ponteiros. 7.) ESTRUTURA DE DADOS Pontos: 1,0 / 1,0 Sobre estrutura de dados, identifique o que está correto afirmar. I. Pilha é uma estrutura de dados com acesso restrito aos seus elementos, uma vez que eles são colocados e retirados por um único lado e são ordenados pelo princípio LIFO (last in first out). Assim, sempre que um elemento é adicionado ou retirado seu topo é alterado. II. Pilha é o tipo de estrutura usada, por exemplo, na avaliação de expressões numéricas, na recursividade e pelos compiladores, na passagem de parâmetros para as funções. III. Registro é uma estrutura básica que permite guardar coleções de dados de diferentes tipos, sendo normalmente utilizado quando um objeto tem diferentes atributos, isto é, contém campos de diferentes tipos. IV. Lista pode conter um número qualquer de elementos, expandindo-se ou contraindo-se conforme o elementos são inseridos ou retirados. Nesse tipo de estrutura, os acessos tanto podem ser feitos sequencialmente como diretamente. V. Fila, assim como a pilha , é uma versão especial de lista, e como tal, seus elementos são ordenados pelo princípio LIFO (last in first out). I, III, IV e V. I, III e V. II, III, IV e V. I, II e III. II, IV e V. 8.) UNIDADE 3 Pontos: 0,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. 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) { 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; } 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){ for (int i = 0; i < n; i++) if (v[i] == valor) return i; return -1; } 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; } } } } 9.) 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 é: Seleção Pesquisa binária Bolha Inserção Pesquisa sequencial 10.) UNIDADE 3 Pontos: 0,0 / 1,0 As estruturas de dados permitem o uso de certos algoritmos para a ordenação dos elementos de forma a facilitar a consulta de determinado elemento. Existem vários tipos de algoritmos para realizar a ordenação dos elementos, onde um algoritmo de ordenação deve rearranjar o vetor de forma a estabelecer uma ordem entre os elementos. O trecho de código abaixo descreve o algoritmo chamado: algoritmo ordena (int a[], int n){ Para i da primeira posição até a penúltima faca mínimo = i para j da posição seguinte a i até a ultima posição faça se (a[j] < a[mínimo]) mínimo =j; fim para fim para troca(a[mínimo],a[i]); fim algoritmo Bolha MergeSort QuickSort Seleção Inserção
Compartilhar