Dado o algoritmo abaixo:
Função Fatorial (i);
declare n numérico;
se i <=1 então
leia n; retorne 1;
senão
retorne Fatorial (i - 1) * i;
fim se
Fim Função
I. A todo procedimento recursivo corresponde um outro não recursivo que executa, exatamente, a mesma computação.
II. A recursividade é ótima para definições matemáticas, tornando a correção mais simples.
III. A recursividade deixa o código mais “enxuto” (conciso).
IV. Não há porque se utilizar o algoritmo acima, pois ele é redundante.
Quais afirmações acima estão incorretas:
a) I e II
b) III
c) IV
d) I, III e IV
e) NDA
Slideshow
Mostrando postagens com marcador tiago lopes. Mostrar todas as postagens
Mostrando postagens com marcador tiago lopes. Mostrar todas as postagens
Questão EPO - Linked List
Uma lista encadeada é uma representação de uma sequência de objetos na memória do computador. Cada elemento da sequência é armazenado em uma célula da lista: o primeiro elemento na primeira célula, o segundo na segunda e assim por diante.
Uma lista encadeada (= linked list = lista ligada) é uma sequência de células; cada célula contém um objeto de algum tipo e o endereço da célula seguinte. Suporemos nesta página que os objetos armazenados nas células são do tipo int. A estrutura de cada célula de uma tal lista pode ser definida assim:
Com base nos conceitos de Linked List é correto afirmar que:
a) Linked List não uni os elementos para formar uma lista.
b) o ponteiro *prox indica o próximo elemento que pertencerá a lista, geralmente alocado como NULL para aguardar o próximo elemento.
c) O exemplo acima não se refere a uma linked list.
d) O conteúdo desta lista será de qualquer tipo, double, string, char, pois isso não importa para a lista.
e) NDA.
Uma lista encadeada (= linked list = lista ligada) é uma sequência de células; cada célula contém um objeto de algum tipo e o endereço da célula seguinte. Suporemos nesta página que os objetos armazenados nas células são do tipo int. A estrutura de cada célula de uma tal lista pode ser definida assim:
| struct cel { int conteudo; struct cel *prox; }; |
|
Com base nos conceitos de Linked List é correto afirmar que:
a) Linked List não uni os elementos para formar uma lista.
b) o ponteiro *prox indica o próximo elemento que pertencerá a lista, geralmente alocado como NULL para aguardar o próximo elemento.
c) O exemplo acima não se refere a uma linked list.
d) O conteúdo desta lista será de qualquer tipo, double, string, char, pois isso não importa para a lista.
e) NDA.
Marcadores:
epo,
linked list,
tiago lopes
Questão EPO - Quicksort
O QuickSort, como o MergeSort, é baseado em uma estratégia de dividir para conquistar e é um dos algoritmos de ordenação mais populares. O QuickSort é baseado no método de ordenação por trocas.
O algoritmo QuickSort pode ser dividido nos seguintes passos:
O array A[p..r] é subdividido em dois arrays A[p..q] e A[q+1..r] não vazios tal que cada elemento de A[p..q] é menor ou igual a cada elemento de A[q+1..r]. O índice q é calculado como parte deste particionamento.
Os dois subarrays A[p..q] e A[q+1..r] são ordenados por recursivas chamadas do QuickSort.
Dado o array f e d h a c g b, e tomando o valor “d” para partição, o primeiro passo do quicksort rearranja o array da seguinte forma:
a) a b c d e f g h
b) f e d h a c g b
c) b c a d h e g f
d) b c f a h e g f
e) NDA
O algoritmo QuickSort pode ser dividido nos seguintes passos:
O array A[p..r] é subdividido em dois arrays A[p..q] e A[q+1..r] não vazios tal que cada elemento de A[p..q] é menor ou igual a cada elemento de A[q+1..r]. O índice q é calculado como parte deste particionamento.
Os dois subarrays A[p..q] e A[q+1..r] são ordenados por recursivas chamadas do QuickSort.
Dado o array f e d h a c g b, e tomando o valor “d” para partição, o primeiro passo do quicksort rearranja o array da seguinte forma:
a) a b c d e f g h
b) f e d h a c g b
c) b c a d h e g f
d) b c f a h e g f
e) NDA
Marcadores:
epo,
quicksort,
tiago lopes
Questão EPO - Hash Table
Dadas as afirmações:
I. Também conhecido como Overflow Progressivo
II. Consiste em procurar a próxima posição vazia depois do endereço-base da chave
III. Vantagem: simplicidade
IV. Desvantagem: se ocorrerem muitas colisões, pode ocorrer um clustering (agrupamento) de chaves em uma certa área. Isso pode fazer com que sejam necessários muitos acessos para recuperar um certo registro. O problema vai ser agravado se a densidade de ocupação para o arquivo for alta
Qual das alternativas estão corretas?
a) I e III
b) I e II
c) II e III
d) I, II, III e IV
e) NDA
I. Também conhecido como Overflow Progressivo
II. Consiste em procurar a próxima posição vazia depois do endereço-base da chave
III. Vantagem: simplicidade
IV. Desvantagem: se ocorrerem muitas colisões, pode ocorrer um clustering (agrupamento) de chaves em uma certa área. Isso pode fazer com que sejam necessários muitos acessos para recuperar um certo registro. O problema vai ser agravado se a densidade de ocupação para o arquivo for alta
Qual das alternativas estão corretas?
a) I e III
b) I e II
c) II e III
d) I, II, III e IV
e) NDA
Marcadores:
epo,
hash table,
tiago lopes
Questão EPO - Bubble sort
Assinale a alternativa correta sobre os principais processos do bubble sort:
a) Ele começa comparando o primeiro item ao segundo, o segundo para o terceiro e assim por diante até encontra um item fora de ordem. Em seguida, os dois itens swaps e começa de novo. A espécie pode alterna a partir do topo da lista para o fundo e depois de baixo para cima.
b) Acessa-se o elemento posicionado no topo, insere um novo elemento no topo da lista e remove o elemento do topo da lista.
c) Acessa-se o elemento posicionado final, insere um novo elemento no inicio da lista e remove o elemento do final da lista.
d) Guardar o primeiro elemento, e apontar seu ultimo elemento para uma célula nula.
e) NDA.
Referencia:
http://pt.wikipedia.org/wiki/Lista_ligada
http://pt.wikipedia.org/wiki/FIFO
http://pt.wikiversity.org/wiki/Estruturas_de_Dados_Intermedi%C3%A1rio/Pilha
http://www.answers.com/topic/bubble-sort#ixzz1PknECB25
a) Ele começa comparando o primeiro item ao segundo, o segundo para o terceiro e assim por diante até encontra um item fora de ordem. Em seguida, os dois itens swaps e começa de novo. A espécie pode alterna a partir do topo da lista para o fundo e depois de baixo para cima.
b) Acessa-se o elemento posicionado no topo, insere um novo elemento no topo da lista e remove o elemento do topo da lista.
c) Acessa-se o elemento posicionado final, insere um novo elemento no inicio da lista e remove o elemento do final da lista.
d) Guardar o primeiro elemento, e apontar seu ultimo elemento para uma célula nula.
e) NDA.
Referencia:
http://pt.wikipedia.org/wiki/Lista_ligada
http://pt.wikipedia.org/wiki/FIFO
http://pt.wikiversity.org/wiki/Estruturas_de_Dados_Intermedi%C3%A1rio/Pilha
http://www.answers.com/topic/bubble-sort#ixzz1PknECB25
Marcadores:
bubble sort,
epo,
tiago lopes
Questão EPO - Heap sort
Um heap (fila de prioridade) é uma estrutura de dados muito importante, que tem duas utilidades principais: organizar acesso a um recurso com base na prioridade dos requerentes (processos, impressões, etc.) ou servir como base a um algoritmo de ordenação muito eficiente denominado heapsort. Para poder servir a esses propósitos, um heap possui uma série de propriedades especiais que têm que ser mantidas por todas as operações nelas realizadas. Levando em consideração estas propriedades, analise as afirmativas abaixo.

É correto APENAS o que se afirma em:
a) I.
b) II.
c) III.
d) I e II.
e) II e III.
Referência:
http://www.questoesdeconcursos.com.br/imprimir/caderno/estrutura-de-dados-205371
CESGRANRIO - 2010 - Petrobrás - Analista de Sistemas Júnior - Engenharia de Software / Algoritmos e Estrutura de Dados

É correto APENAS o que se afirma em:
a) I.
b) II.
c) III.
d) I e II.
e) II e III.
Referência:
http://www.questoesdeconcursos.com.br/imprimir/caderno/estrutura-de-dados-205371
CESGRANRIO - 2010 - Petrobrás - Analista de Sistemas Júnior - Engenharia de Software / Algoritmos e Estrutura de Dados
Marcadores:
epo,
heap sort,
tiago lopes
Questão EPO - Merge sort
As estratégias de divisão e de conquista são utilizadas pelos algoritmos de ordenação
a) Selection Sort e Insertion Sort
b) Selection Sort e Buble Sort.
c) Quick sort e Merge Sort.
d) Bubble sort e Bucket Sort.
e) Nda.
Referencia:
http://www.questoesdeconcursos.com.br/questoes/eccbd7ac-72
a) Selection Sort e Insertion Sort
b) Selection Sort e Buble Sort.
c) Quick sort e Merge Sort.
d) Bubble sort e Bucket Sort.
e) Nda.
Referencia:
http://www.questoesdeconcursos.com.br/questoes/eccbd7ac-72
Marcadores:
epo,
merge sort,
tiago lopes
Questão EPO - Árvore Binária
Qual a sequência correta da árvore binária?
a) 2 3 5 3 7 8 10
b) 7 8 10 2 5 3 4
c) 7 8 2 5 8 3 5 10 4
d) 7 2 5 3 4 8 10
e) NDA
Marcadores:
árvore binária,
epo,
tiago lopes
Questão EPO - Árvore Binária
Considere a árvore abaixo:
Quais são os níveis corretos da árvore acima:
a) nível 0 = A nível 1 = B, C nível 2 = D, E, F, G nível 3 = H, I
b) nível 0 = D nível 1 = H,I,E,F,G nível 2 = B,C nível 3 = A
c) nível 0 = B nível 1 = D,E,F,G nível 2 = H,I,C nível 3 = A
d) nível 0 = C nível 1 = D,E,F,G nível 2 = H,I,B nível 3 = A
e) NDA.
Quais são os níveis corretos da árvore acima:
a) nível 0 = A nível 1 = B, C nível 2 = D, E, F, G nível 3 = H, I
b) nível 0 = D nível 1 = H,I,E,F,G nível 2 = B,C nível 3 = A
c) nível 0 = B nível 1 = D,E,F,G nível 2 = H,I,C nível 3 = A
d) nível 0 = C nível 1 = D,E,F,G nível 2 = H,I,B nível 3 = A
e) NDA.
Marcadores:
árvore binária,
epo,
tiago lopes
Questão EPO - Pilha
Dado o exemplo de pilha:
É correto afirmar:
I - O primeiro que sai é o último que entrou. (a siglaLIFO –last in, first out)
II –A função push, faz a exclusão dos elementos da pilha.
III – A função pop, faz a exclusão do ultimo elemento que entrou na pilha.
a) Somente a alternativa I está correta.
b) Somente a alternativa II está correta.
c) As alternativas I e III estão corretas.
d) As alternativas I e II estão corretas.
e) NDA.
É correto afirmar:
I - O primeiro que sai é o último que entrou. (a siglaLIFO –last in, first out)
II –A função push, faz a exclusão dos elementos da pilha.
III – A função pop, faz a exclusão do ultimo elemento que entrou na pilha.
a) Somente a alternativa I está correta.
b) Somente a alternativa II está correta.
c) As alternativas I e III estão corretas.
d) As alternativas I e II estão corretas.
e) NDA.
Marcadores:
epo,
pilha,
tiago lopes
Questão EPO - Estrutura de Dados
Dada a seguinte afirmação sobre Estrutura de dados:
“Maneira eficiente de armazenar eorganizar dados de modo a facilitar o seu acesso e modificação.Bem desenhadas levam a que certas operações críticassejam executadas usando o menor custo possível derecursos (tempo e espaço).”
Qual o objetivo da Estrutura de Dados ?
a) Facilitar os processos de engenharia de Software.
b) Deixar a codificação mais vulnerável.
c) Otimizar e organizar consultas.
d) Otimizar códigos.
e) NDA.
“Maneira eficiente de armazenar eorganizar dados de modo a facilitar o seu acesso e modificação.Bem desenhadas levam a que certas operações críticassejam executadas usando o menor custo possível derecursos (tempo e espaço).”
Qual o objetivo da Estrutura de Dados ?
a) Facilitar os processos de engenharia de Software.
b) Deixar a codificação mais vulnerável.
c) Otimizar e organizar consultas.
d) Otimizar códigos.
e) NDA.
Marcadores:
epo,
estrutura de dados,
tiago lopes
Questão EPO - Fila
Um estudante de computação precisa resolver um problema bastante importante, que é executar as operações que estão descritas abaixo, cuja estrutura é uma fila. Tão logo ele retire algum elemento desta fila, lembrando o conceito FIFO (First In First Out).
Assinale a alternativa que contém a sequência correta de entrada dos elementos na fila.
INSERE P
INSERE E
INSERE R
INSERE T
INSERE O
RETIRA
RETIRA
INSERE S
INSERE O
INSERE L
RETIRA
RETIRA
RETIRA
a) S – O – L
b) R – T – O
c) P – E – R
d) O – T – L
e) NDA
Assinale a alternativa que contém a sequência correta de entrada dos elementos na fila.
INSERE P
INSERE E
INSERE R
INSERE T
INSERE O
RETIRA
RETIRA
INSERE S
INSERE O
INSERE L
RETIRA
RETIRA
RETIRA
a) S – O – L
b) R – T – O
c) P – E – R
d) O – T – L
e) NDA
Marcadores:
epo,
fila,
tiago lopes
Questão EPO - Alocação Dinâmica
De acordo com os conceitos sobre alocação dinâmica, segue a seguinte declaração:
double* pd;
pd = (double *) malloc(30 * sizeof(double));
Dadas as afirmaçõesabaixo:
I - Se não houver memória disponível para alocar, a função retorna um ponteiro nulo (NULL).
II - A operação realizada com o (double *) é chamada de casting. Ela converte o tipo retornado pela função malloc() de ponteiro para void em ponteiro para double.
III – O exemplo acima não refere-se sobre alocação de memória dinâmica e sim alocação de memória estática de memória.
Podemos concluir que:
a) Somente a alternativa I está correta.
b) Somente a alternativa II está correta.
c) Todas as alternativas estão corretas.
d) As alternativas I e II estão corretas.
e) NDA
double* pd;
pd = (double *) malloc(30 * sizeof(double));
Dadas as afirmaçõesabaixo:
I - Se não houver memória disponível para alocar, a função retorna um ponteiro nulo (NULL).
II - A operação realizada com o (double *) é chamada de casting. Ela converte o tipo retornado pela função malloc() de ponteiro para void em ponteiro para double.
III – O exemplo acima não refere-se sobre alocação de memória dinâmica e sim alocação de memória estática de memória.
Podemos concluir que:
a) Somente a alternativa I está correta.
b) Somente a alternativa II está correta.
c) Todas as alternativas estão corretas.
d) As alternativas I e II estão corretas.
e) NDA
Marcadores:
alocação dinâmica,
epo,
tiago lopes
Questão EPO - Ponteiro
Dada a seguinte informação, é correto afirmar:
A simples declaração de um ponteiro não o faz útil. É necessária a indicação da variável para a qual ele aponta.
int var;
int *ptr;
var = 10;
ptr = &var;
Na seqüência acima, são declarados uma variável tipo int (var) e um ponteiro para o mesmo tipo (ptr). A terceira linha atribui o valor 10 a var e a última linha inicializa o ponteiro ptr.
Observa-se o uso do operador de endereçamento (&) para inicialização do ponteiro. Isso significa, no código ptr = &var;, que ptr passa a conter o endereço de var, não o seu valor.
O valor 4052 para a posição de memória de var é apenas ilustrativo. Na prática, dependerá do local de memória onde o programa foi carregado.
Com ptr apontando para var, é possível realizar operações com esta última de forma indireta, a partir de ptr.
a) O valor do ponteiro ptr será sempre 4052.
b) O uso do operador de endereçamento (&) não é necessário para atribuir o endereço de uma variável a um ponteiro.
c) O valor da variável var é 10, e também o endereço de memória alocado a esta variável é o 4052.
d) O ponteiro ptr contém o valor da variável var e não o seu endereço.
e) NDA.
Referência: http://www.mspc.eng.br/info/cpp_ptr_10.shtml
A simples declaração de um ponteiro não o faz útil. É necessária a indicação da variável para a qual ele aponta.
int var;
int *ptr;
var = 10;
ptr = &var;
Na seqüência acima, são declarados uma variável tipo int (var) e um ponteiro para o mesmo tipo (ptr). A terceira linha atribui o valor 10 a var e a última linha inicializa o ponteiro ptr.
Observa-se o uso do operador de endereçamento (&) para inicialização do ponteiro. Isso significa, no código ptr = &var;, que ptr passa a conter o endereço de var, não o seu valor.
O valor 4052 para a posição de memória de var é apenas ilustrativo. Na prática, dependerá do local de memória onde o programa foi carregado.
Com ptr apontando para var, é possível realizar operações com esta última de forma indireta, a partir de ptr.
a) O valor do ponteiro ptr será sempre 4052.
b) O uso do operador de endereçamento (&) não é necessário para atribuir o endereço de uma variável a um ponteiro.
c) O valor da variável var é 10, e também o endereço de memória alocado a esta variável é o 4052.
d) O ponteiro ptr contém o valor da variável var e não o seu endereço.
e) NDA.
Referência: http://www.mspc.eng.br/info/cpp_ptr_10.shtml
Marcadores:
epo,
ponteiro,
tiago lopes
Questão EPO - Struct
Dada a estrutura abaixo:
struct cliente {
char nome[30];
char rua[50];
int idade;
};
I – Em um aplicativo em C/C++ somente é possível utilizar uma estrutura (struct) uma vez por execução do sistema assim como o exemplo abaixo:
struct cliente você;
voce.Nome = “Fulano”;
voce.rua = “Rua dos bobos n 0”;
voce.idade = 19;
struct cliente {
char nome[30];
char rua[50];
int idade;
};
I – Em um aplicativo em C/C++ somente é possível utilizar uma estrutura (struct) uma vez por execução do sistema assim como o exemplo abaixo:
struct cliente você;
voce.Nome = “Fulano”;
voce.rua = “Rua dos bobos n 0”;
voce.idade = 19;
II – Uma estrutura (struct) é posso criar várias estruturas de acordo com a sua necessidade.
III – O acesso aos campos de uma estrutura é semelhante ao acesso nos vetores. Só que nos vetores a localização dos campos é feita através do índice e nas estruturas isso é feito com o nome dos campos.
É correto afirmar que:
a) As afirmações I e II estão corretas.
b) Somente a afirmação II está correta.
c) As afirmações II e III estão corretas.
d) Somente a afirmação I está correta.
e) NDA.
Marcadores:
epo,
struct,
tiago lopes
Assinar:
Postagens (Atom)



