Analise o seguinte algoritmo em pseudo-código e assinale a a...

Próximas questões
Com base no mesmo assunto
Q1277563 Algoritmos e Estrutura de Dados

Analise o seguinte algoritmo em pseudo-código e assinale a alternativa correta. 


inteiro funcao_A (inteiro n)

início

inteiro f;

se ( n == 1) ou (n == 0) então

 retorna 1;


f = funcao_A(n-1)*n;

retorna f; 

 fim.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: A

Vamos analisar a questão em detalhes. O pseudo-código apresentado implementa uma função recursiva que calcula o fatorial de um número inteiro n. A função é definida da seguinte forma:

inteiro funcao_A (inteiro n)
início
inteiro f;
se (n == 1) ou (n == 0) então
    retorna 1;
f = funcao_A(n-1) * n;
retorna f;
fim.

Para compreender a lógica da função, é fundamental entender o conceito de recursão. Recursão ocorre quando uma função chama a si mesma para resolver um problema menor até alcançar uma condição base.

Justificativa da Alternativa Correta (A):

A alternativa A está correta porque descreve corretamente a operação da função recursiva. Quando a função funcao_A é chamada com o argumento 2, ela verifica se n é 1 ou 0, o que não é o caso. Então, ela faz uma chamada recursiva com o argumento n-1 (ou seja, 1), e multiplica o resultado dessa chamada pelo argumento atual (2).

Justificativa das Alternativas Incorretas:

B - A alternativa B está incorreta porque o algoritmo é recursivo, não iterativo. Em um algoritmo recursivo, não é necessário armazenar todos os passos intermediários do processamento em variáveis adicionais, pois a pilha de chamadas da recursão já gerencia essa informação.

C - A alternativa C está incorreta porque, quando a função é chamada com o argumento 1, ela retorna 1 e não 0. Esta é a condição base da recursão, que evita a necessidade de uma iteração adicional.

D - A alternativa D está incorreta. O algoritmo não retornará um erro para valores maiores que 1000, a menos que haja uma limitação do sistema em termos de profundidade de recursão ou limite de pilha. O pseudo-código não especifica tal limitação.

E - A alternativa E está incorreta porque o algoritmo não contém um laço (loop) que executa de 1 a n. Em vez disso, ele usa chamadas recursivas para multiplicar progressivamente cada número, conforme a definição de fatorial.

Em resumo, a alternativa A descreve corretamente a operação recursiva da função para calcular o fatorial de um número. Entender recursão e a condição base é essencial para resolver questões desse tipo.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

E) Há um laço que é executado de 1 a n ( Não executa e retornar 1), multiplicando progressivamente cada número pelo produto móvel dado por “f = funcao_A(n-1)*n;”.

Força Guerreiro!!!!!!

Função recursiva

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo