Tipo de Avaliação: AV
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 :
nw : quantidade de elementos em w
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){ bool teste; int x, i; n = 0; for (i = 0; i
< nv; i++){ teste = false; for (x = 0; x < nw; x++){ if (v[i] == w[x]){ teste = true; break; } if (teste = false)
z[n++] = v[i]; } } if (n > 0) return true; else return false; }
Gabarito:
bool intersecao(int v[], int w[], int inter[], int nv , int nw , int &n) {
if (v[i] == w[j]) {
inter[n] = v[i];
achou = true;
n++;
return achou;
Listas encadeadas são estruturas cujos nodos são alocados dinamicamente, isto é em tempo de
execução, na medida em que se necessite de mais espaço. Sendo um nodo representado por:
struct elemento{
string nome;
int idade;
elemento *prox;
};
Escreva em linguagem C++ uma função de nome criaNodo( ), que crie um novo nodo para ser inserido
no final da lista, e forneça um ponteiro com o endereço do nodo criado.
Resposta: elemento * criaNodo(){ elemento el = new elemento; el.prox = null; return el; }
Gabarito:
elemento * criaNodo ( )
{
elemento *p=new elemento;
p->prox=null;
return p;
}
As estruturas de dados podem ser caracterizadas como sendo uma forma organizada de armazenar
dados ou informações na memória, de modo a otimizar o acesso a estes. Muitas vezes existem
algoritmos de manipulação dados associados a estas estruturas. Verifique as seguintes sentenças:
I-Filas são estruturas que recuperam os dados na ordem direta em que estes foram armazenados.
II-As Pilhas são estruturas que recuperam os dados na ordem reversa em que estes
foram armazenados.
III-As Pilhas são estruturas que recuperam os dados na ordem direta em que estes
foram armazenados.
IV-As Filas são estruturas que recuperam os dados na ordem reversa em que estes
foram armazenados.
Analise as seguintes afirmações: I. Na Passagem por Referência, o parâmetro que vai ser passado na chamada
da função deve ser uma variável, de tal forma que uma alteração de valor neste parâmetro também altera a
variável correspondente. II. Uma recursão consiste em uma função chamar ela mesma com argumentos sempre
do mesmo valor. III. Considerando-se o escopo das variáveis, é correto afirmar que uma variável é dita global
quando a sua passagem no momento da chamada de uma função se dá tanto por valor quanto por referência.
Uma variável é dita local quando esta passagem se dá apenas por valor. Indique a opção que contenha todas as
afirmações verdadeiras.
somente a alternativa I.
I e II.
I e III.
II e III.
somente a alternativa e II.
Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente,
agrupados sob uma lógica e associados por um nome.
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de
uma estrutura como:
struct aluno {
string nome;
float nota;
};
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo elemento deste
vetor.
vet[10].nota=5.7;
aluno.vet[10].nota=5.7;
aluno.vet[10]=5.7;
vet[10].aluno.nota=5.7 ;
vet[10]=aluno.5.7;
Analise o seguinte trecho de algoritmo de ordenação de dados, cujos elementos estão dispostos em um vetor de
nome v com n elementos.
...
int i, j, aux;
aux = v[i-1];
v[i-1] = v[i];
v[i] = aux;
...
Bolha
Inserção
Quicksort
Heapsort
Seleção
As estruturas de dados são utilizadas para manter dados ou informações organizados na memória, o que
possibilita a otimização do uso destes dados. Porém, as estruturas guardam características especiais na
manipulação destes dados, assim deve-se escolher a estrutura certa ou mais adequada para uma determinada
aplicação. Portanto marque a opção que representa a melhor estrutura, quando se tem como requisitos
principais o acesso aleatório aos dados e alocação destes de forma contínua na memória.
Lista Sequencial
Fila Sequencial
Pilha Encadeada
Lista Encadeada
Pilha Sequencial
struct Pilha {
int v[n], topo;
};
O espaço necessário para a representação dos dados pode ser alocado à medida que se torne necessário,
através da alocação dinâmica. Uma estrutura armazenada através de encadeamento apresenta seus nodos
alocados em posições aleatórias na memória, e não lado a lado. Dessa forma, existem várias vantagens no uso
de representar os dados por encadeamento. Marque a alternativa correta que apresenta estas vantagens.