Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fechar Avaliação: CCT0174_AV_201101229446 » ESTRUTURA DE DADOS Tipo de Avaliação: AV Aluno: 201101229446 - ELISABETH DOS REIS BRAZ Professor: SERGIO DE OLIVEIRA SANTOS Turma: 9001/AA Nota da Prova: 8,0 Nota de Partic.: 2 Data: 11/06/2014 11:22:15 1a Questão (Ref.: 201101301584) Pontos: 1,5 / 1,5 const int TAMMAX = 100; struct TipoLista{ int qtde; // descritor que representa a quantidade de elementos na lista int elemt[TAMMAX]; }; Fundamento no tipo de dado(registro) acima que representa uma implementação de uma lista linear sequencial. Construa um procedimento para adicionar um dado no final da lista. A lista e o dado serão passados por parâmetro. Usar o mecanismo de passagem por referência se for necessário. Resposta: void addFinalLista ( TipoLista &lista, int dado ){if(lista.qtde == TAMMAX){cout << "Lista Cheia."; } else{ lista.elemt[lista.qtde] = dado; lista.qtde++; cout << "Dado adicionado com sucesso."; } } Gabarito: void addFinalLista ( TipoLista &lista, int dado ){ if(lista.qtde == TAMMAX){cout << "Lista Cheia."; } else{ lista.elemt[lista.qtde] = dado; lista.qtde++; cout << "Dado adicionado com sucesso."; } } 2a Questão (Ref.: 201101301447) Pontos: 1,5 / 1,5 Defina um tipo de dado (registro) capaz de armazenar as seguintes informações sobre um determinado cliente de um banco: nome, CPF, RG, número da conta, data de abertura da conta, e saldo. Com base neste tipo de dado, construa o trecho código em C++ que represente a leitura dos dados do cliente feita pelo usuário. Resposta: struct BancoCliente { string nome[30], char cpf, char rg, int n_conta, int dt_abert, float saldo, } BancoCliente cliente; cin >> cliente.nome; cin >> cliente.cpf; cin >> cliente.rg; cin >> cliente.n_conta; cin >> cliente.dt_abert; cin >> cliente.saldo; Gabarito: struct ClienteBanco{ string nome; string cpf; int rg; int numConta; double saldo; }; ClienteBanco cliente; cin >> cliente.nome; cin >> cliente.cpf; cin >> cliente.rg; cin >> cliente.saldo; 3a Questão (Ref.: 201101283338) Pontos: 0,5 / 0,5 No programa abaixo, diga em que área de memória serão alocados os elementos de dados y e r, respectivamente. #include using namespace std; int x, y; float media( float a, float b ) { float tmp; tmp = (a + b ) / 2.0; return ( tmp ); } int main() { float r; cout<<"Informe 2 valores: "; cin>>x>> y; r = media( x, y ); cout<<"\nMedia = "<< r<<"\n"; system ("pause"); } ( ) área de registro / área de pilha ( ) área de pilha / área de registro ( ) área de dados globais / área de pilha ( ) área de dados globais / área de registro ( ) área de registro / área de dados globais 4a Questão (Ref.: 201101482775) Pontos: 0,5 / 0,5 Entre os diversos algoritmos de pesquisa existentes, certamente os mais famosos são os da pesquisa sequencial e o da pesquisa binária. A busca ou pesquisa sequencial pode ser aplicada em vetores independente destes estarem ordenados, entretanto a busca binária só se aplica em vetores ordenados. Seja o vetor A= {10,35,41,55,69,70,98}, suponha que o número 70 foi pesquisado pelo algoritmo da busca sequencial e também pelo algoritmo da busca binária, ambos algoritmos realizam testes nos elementos do vetor até achar o que procuram ou definirem que o elemento não se encontra no vetor. Sendo assim marque a alternativa que expressa o número de testes realizados pela busca sequencial e o número de testes realizados pela busca binária, respectivamente, até encontrarem o 70. 5 e 5 6 e 4 6 e 2 6 e 1 7 e 1 5a Questão (Ref.: 201101279982) Pontos: 0,5 / 0,5 O que acontece quando tentamos retirar um elemento de uma pilha que já está vazia? Inclusão. Remoção. Overflow. Underflow. Ordenação. 6a Questão (Ref.: 201101485284) Pontos: 0,5 / 0,5 Considere uma pilha sequencial P com capacidade para n elementos. Sabendo que P é do tipo Pilha definido a seguir, marque a opção que corretamente implementa a operação de empilhamento, considerando que o topo da pilha recebeu -1 na inicialização. struct Pilha { int v[n], topo; }; void empilhar(Pilha P, int valor) { if (P.topo == n) cout << "Pilha cheia."; else { P.topo++; P.v[P.topo] = valor; } } void empilhar(Pilha P, int valor) { if (P.topo == n - 1) cout << "Pilha cheia."; else { P.topo++; P.v[P.topo] = valor; } } void empilhar(Pilha &P, int valor) { if (P.topo == n - 1) cout << "Pilha cheia."; else P.v[P.topo] = valor; } void empilhar(Pilha &P, int valor) { if (topo == n - 1) cout << "Pilha cheia."; else { topo++; v[topo] = valor; } } void empilhar(Pilha &P, int valor) { if (P.topo == n - 1) cout << "Pilha cheia."; else { P.topo++; P.v[P.topo] = valor; } } 7a Questão (Ref.: 201101280537) Pontos: 1,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. Registro. Ponteiros. Passagem por valor. Envio de valor. 8a Questão (Ref.: 201101272119) Pontos: 1,0 / 1,0 Em relação às estruturas de dados, é correto afirmar: LIFO refere-se à estrutura de dados do tipo pilha, que nada mais é do que uma lista linear, duplamente encadeada. Nos sistemas operacionais, a execução dos processos concorrentes ocorre segundo os princípios da estrutura FILO. LIFO refere-se à estrutura de dados do tipo pilha, que nada mais é do que uma lista linear, sem disciplina de acesso, onde o primeiro elemento a entrar é o último a sair. Guardar endereço de memória em "nós", normalmente identificados por previous ou next, é uma característica presente nas listas duplamente encadeadas. Um grafo com um único vértice e sem arestas é conhecido como dígrafo. 9a Questão (Ref.: 201101272050) Pontos: 0,5 / 0,5 Diferentes tipos de estrutura de dados são adequadas a diferentes tipos de aplicação e algumas são altamente especializadas, destinando-se a algumas tarefas específicas. Dessa forma a definição de Estrutura de Dados está expressa na alternativa: É um modo de distribuição e organização de dados em uma rede de computador de modo que possam ser usados de modo eficiente. É um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados de modo eficiente. É um modo de deleção de dados em um computador. É um modo de utilização de dados nos programas de computador. São os nomes dados as variáveis na montagem de uma rotina. 10a Questão (Ref.: 201101485213) Pontos: 0,5 / 0,5 Com relação à struct, é correto afirmar que : Cada elemento da struct é denominado membro ou campo, sendo que a struct pode armazenar elementos de tipos diferentesou não. Cada elemento da struct é chamado campo e cada campo deve ser, obrigatoriamente, de um tipo de dados distinto de outro campo. Não é possível criar um vetor de structs, pois o vetor trabalha apenas com dados do mesmo tipo. A struct é sempre definida dentro da main. Cada elemento da struct é chamado componente.
Compartilhar