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.

Imagem 1

| 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 == 0 então retorna 1.
  • Caso recursivo: retorna n * FUNC(n-1).

Ou seja, FUNC(n) calcula o fatorial de n, com a convenção 0!=10! = 1.

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 num=knum = k.

Empilhando (chamadas):

  • FUNC(k) chama FUNC(k-1)
  • FUNC(k-1) chama FUNC(k-2)
  • ...
  • FUNC(1) chama FUNC(0)

Caso base (destaque):

  • FUNC(0) retorna 1

Desempilhando (retornos):

  • FUNC(1) = 1 * 1 = 1
  • FUNC(2) = 2 * 1 = 2
  • FUNC(3) = 3 * 2 = 6
  • ...
  • FUNC(k) = k * (k-1) * ... * 1 = k!

Portanto, ao final:

  • RESULT=num!RESULT = num!

Se você me disser quais são o e o 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.

Questões relacionadas

Ver últimas questões

Comece a estudar de forma inteligente hoje mesmo

Resolva questões de concursos e vestibulares com IA, gere simulados personalizados e domine os conteúdos que mais caem nas provas.

Cancele quando quiser.