Buscar

Provas discursiva 2014

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

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

Prévia do material em texto

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) { for(int i = 0; i < nv; i++) { for(int j
= 0; j < nw; j++) { if(v[i] == w[j]) { z[n] = v[i]; n++; } } } }
Gabarito:
bool intersecao(int v[], int w[], int inter[], int nv , int nw , int &n) {
bool achou = false;
for (int i = 0; i < nv; i++)
 for (int j = 0; j < nw; j++)
 if (v[i] == w[j]) {
 inter[n] = v[i];
 achou = true;
 n++;
}
return achou;
}
Defina, de a importância e exemplifique “struct”.
Resposta: É UMA ESTRUTURA DE DADOS ONDE PODEMOS TER TIPOS DE ELEMENTOS DIFERENTES NA
MESMA STRUCT. TORNA FLEXÍVEL A CRIAÇÃO DE NOSSOS PRÓPRIOS TIPOS DE DADOS,
MINIMIZANDO A CRIAÇÃO DE VARIÁVEIS E VETORES QUE CONSOMEM MAIS MEMÓRIA. UM
EXEMPLO SERIA "STRUCT FICHA" ONDE PODERIA CONSTAR TODAS AS INFORMAÇÕES DE UM
FUNCIONÁRIO, ALUNO, CLIENTE, ETC...
Gabarito:
Palavra reservada nas linguagens C e C++, que permite construir um tipo de dado definido pelo
programador, agregando dados de tipos diferentes em campos. Para muitos problemas não temos
um tipo de dado específico preparado para ele e com o struct podemos gerar tipos novos de
acordo com o problema. struct endereco{ char Rua[60]; char Bairro[60]; char Cidade[60]; char
Estado[2]; int numero; };
Defina, exemplifique e cite as vantagens da busca binária.
Resposta: LOCALIZA UMA INFORMAÇÃO DENTRO DE UMA LISTA QUE PARA TAL PRECISA ESTAR
OBRIGATORIAMENTE ORDENADA. É MAIS RÁPIDA E MUITO ÚTIL QUANDO A LISTA É GRANDE,
COMO POR EXEMPLO: BUSCAR UM ITEM NA LISTA DE ASSINANTES DO GLOBO.
Gabarito:
Permite 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, comparando o valor de busca com
o elemento da lista a ser procurado A busca binária é mais rápida que a seqüencial na maioria
das vezes. A busca de uma palavra em um dicionário, com a busca seqüencial, se a palavra
desejada estiver no final do dicionário levaria muito tempo indo de página em página.
Considere uma lista simplesmente encadeada não circular de inteiros e o tipo
struct no {
int dado;
struct no *link;
};
Faça uma função para inverter a lista e retornar o ponteiro para o início da lista resultante.
Protótipo : no *inverter(no *ini); //ini aponta para o início da lista
Resposta: int funcao(float v[], float vl, int n) { for (int i = 0; i < n; i++) if (v[i] == vl) return i; return -1; }
Gabarito: no *inverter ( no *ini) // ini é um ponteiro para o início da lista 
{ 
no *a, *b, *c;
a = ini; 
b = NULL; 
while (a != NULL) { 
c = b; b = a; a = a->link; 
b->link = c; 
} 
ini = b; return(ini); 
} /* fim da função */
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. 
 
 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."; 
} } 
Qual a diferença entre pilha e fila?
Sua Resposta: Pilha - Estrutura LIFO onde o ultimo a entrar é o primeiro a sair. Fila - estrutura FIFO onde o primeiro a entrar é o primeiro a sair.
Compare com a sua resposta: Pilha se caracteriza por ser uma estrutura de dados que são inseridos e retirados numa sequencia semelhante as anilhas de alteres, isto é, usa a lógica LIFO. Já uma fila se caracteriza por ser um estrutura semelhante a fila de banco, isto é, os dados vão chegando e sendo processados e retirados da estrutura. Essa lógica é chamada de FIFO.
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: char nome; int cpf, rg, numero conta, saldo, data; printf(nome, CPF, RG, numero conta, data
abertura, 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;

Outros materiais