Tendo como entrada a variável num que será a soma do 1º dígito com o 4º dígito do seu RA, faça o teste de mesa passo a passo no programa ao lado indicando ao final 'a caneta' o valor da variável RESULT. Para o teste de mesa, construa uma tabela na qual seja possível verificar a chamada da função, o valor de n, a pilha de chamadas, o caso base e o retorno desempilhando e calculando os resultados. Deixar em destaque quando atingir o caso base.
Questão
Tendo como entrada a variável num que será a soma do 1º dígito com o 4º dígito do seu RA, faça o teste de mesa passo a passo no programa ao lado indicando ao final 'a caneta' o valor da variável RESULT. Para o teste de mesa, construa uma tabela na qual seja possível verificar a chamada da função, o valor de n, a pilha de chamadas, o caso base e o retorno desempilhando e calculando os resultados. Deixar em destaque quando atingir o caso base.
| Chamada da Função | Valor de "n" | Pilha de chamadas | Valor após caso base |
Resposta
92%Não é possível determinar numericamente o valor de RESULT sem o valor de entrada num (que depende do seu RA).
Explicação
Pelo código da imagem, a função é recursiva:
- Assinatura:
int FUNC(int n) - Caso base: se
n == 0então retorna1. - Caso recursivo: retorna
n * FUNC(n-1).
Ou seja, FUNC(n) calcula o fatorial de n, com a convenção .
No main, o programa lê num e faz:
RESULT = FUNC(num)
Logo, RESULT = num!.
Teste de mesa (modelo geral)
Como o enunciado define que num é a soma do 1º com o 4º dígito do seu RA, você precisa primeiro calcular esse num.
Suponha que .
Empilhando (chamadas):
FUNC(k)chamaFUNC(k-1)FUNC(k-1)chamaFUNC(k-2)- ...
FUNC(1)chamaFUNC(0)
Caso base (destaque):
FUNC(0)retorna 1
Desempilhando (retornos):
FUNC(1) = 1 * 1 = 1FUNC(2) = 2 * 1 = 2FUNC(3) = 3 * 2 = 6- ...
FUNC(k) = k * (k-1) * ... * 1 = k!
Portanto, ao final:
Se você me disser quais são o 1º e o 4º dígitos do seu RA (ou diretamente o valor de num), eu monto a tabela completa linha a linha e dou o valor numérico final de RESULT.
Alternativa correta: (não se aplica).
Travou em outra questão? A gente resolve.
Crie sua conta grátis e resolva 3 questões por dia com explicação passo a passo, por texto ou foto.