Buscar

CCT0174 - ESTRUTURA DE DADOS - DAN - AV1

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 5 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

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

Outros materiais