Questões de Concurso
Sobre recursividade em algoritmos e estrutura de dados
Foram encontradas 63 questões
Com relação às estruturas de controle em programas de computador, julgue o item subsecutivo.
A chamada de uma função para execução é feita citando-se o
seu identificador no meio de uma expressão. Uma função é dita
recursiva quando chama ela própria.
Sobre o conceito de Algoritmos Recursivos, analise as afirmações abaixo e, a seguir, assinale a alternativa correta.
I. Um programa tem um número limitado de procedimentos recursivos.
II. Recursividade é utilizada exclusivamente quando não se sabe solucionar um problema de maneira imediata, então é realizada a divisão em problemas menores para alcançar o resultado desejado.
III. Todos os problemas computacionais resolvidos de maneira iterativa gastam mais memória que se resolvidos de forma recursiva.
Uma função recursiva pela cauda sempre possui um equivalente iterativo direto.
A respeito de análise de algoritmos, programação estruturada e orientada a objetos e estruturas de dados, julgue o item a seguir.
Em um algoritmo que utilize o processo de recursão, é necessária a existência de uma condição de parada a fim de se evitar que o algoritmo entre em um loop.
Uma boa lógica de programação é fundamental para que os algoritmos sejam bem desenvolvidos e, consequentemente, os programas bem implementados, claro que se agregando o conhecimento da sintaxe da linguagem de programação escolhida. Dessa forma, pensando-se em estruturas de algumas implementações, considere o seguinte trecho de código:
int fibonacci (int N)
{
if (N <= 1)
return N;
else
return ( fibonacci(N - 1) + fibonacci(N - 2) );
}
Pode-se afirmar, a partir do código anteriormente apresentado, que:
Considere o seguinte trecho de código.
intn f;
if(n==l) {
return n*n;}
else {
f = F(n-l) * n;
return f;
}
}Da forma com que essa função foi implementada, para uma entrada "n" igual a 4, pode-se dizer que a função:
Após a execução, a função retornará um valor igual a:
algoritmo "MDA"
var
X, W, N : inteiro
funcao FF(Y:inteiro):inteiro
inicio
N <- N + 1|
se Y < 2 entao
retorne 1
senao
retorne Y * FF(Y-1)
fimse
fimfuncao
inicio
X <-5
N <-0
W <- FF(X)
W <-W-50
escreval(W,N)
fimalgoritmo
Após a execução, o algoritmo, os valores de W e N serão, respectivamente:
Após a execução, os valores de W, F(N) e K serão, respectivamente:
f(a,b) se b = 0 então retorna a senão retorna f(b, a MOD b)
onde x MOD y é o resto da divisão de x por y. O valor de f (30, 21) é
f(a,b)
se b = 0 ehtão
retorna a
senão
retorna f(b, a MOD b)
onde x MOD y é o resto da divisão de x por y. O valor de f (30, 21)é
Após a execução, o valor da variável BARRA e o de retorno da função serão, respectivamente:
As lacunas são correta e, respectivamente, preenchidas por:
A função mostrada abaixo é um exemplo de algoritmo recursivo.
Function fat (x:integer) : integer;
begin
if x=0 then cfat := 1
else fat := x * cfat (n-1);
end;