Considere a função G a seguir, codificada na linguag...

Próximas questões
Com base no mesmo assunto
Q445740 Programação
Considere a função G a seguir, codificada na linguagem de programação C:

void G (int n, int x, int y)
{
        int i, z;

        printf ("%d %d", x, y);

        i = 0;
        while (i < n-2)
       {

               z = x + y;
               printf (" %d", z);
               x = y;
               y = z;
               i = i + 1;

        }

        printf ("\n");

}


Para que sejam impressos os 10 primeiros termos da Sequência de Fibonacci

0 1 1 2 3 5 8 13 21 34,

a chamada correta para a função G é:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: A - G (10, 0, 1)

Para compreender a alternativa correta, precisamos primeiro entender o que a função G na questão está realizando. A função tem o objetivo de imprimir uma sequência de números onde cada número é a soma dos dois números anteriores. Essa é a base da famosa Sequência de Fibonacci, onde cada termo é a soma dos dois termos anteriores, iniciando-se com os termos 0 e 1.

Na função G, os dois primeiros números são impressos diretamente pela linha printf("%d %d", x, y);. Em seguida, um laço while é empregado para calcular e imprimir os termos restantes da sequência. A variável i é utilizada como contador do loop e a condição de parada é i < n-2, o que é crítico para entender a resposta correta.

O parâmetro n na chamada da função G determina o número total de termos a serem impressos. Como os dois primeiros termos já são impressos automaticamente antes do loop, o loop irá executar n-2 vezes para imprimir os termos restantes. Para imprimir 10 termos, o loop deve executar 8 vezes (já que 10 - 2 = 8), e, portanto, o valor de n deve ser 10.

Os parâmetros x e y representam os dois primeiros termos da sequência. Para seguir a Sequência de Fibonacci conforme o enunciado de questão, o primeiro termo (x) deve ser 0 e o segundo termo (y) deve ser 1.

Com isso, a chamada correta é G (10, 0, 1), pois isso resulta nos primeiros dois termos sendo 0 e 1, e o loop while se repetindo 8 vezes, para um total de 10 termos impressos, exatamente como a Sequência de Fibonacci solicitada.

As outras alternativas estão incorretas porque não respeitam a necessidade de imprimir exatamente os 10 primeiros termos da Sequência de Fibonacci começando com 0 e 1 ou porque não ajustam o valor de n adequadamente para contabilizar os dois primeiros termos já impressos.

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

gabarito letra a (10,0,1)

os primeiros valores impressos são 0 e 1 que se referem a X e Y.

quando i = 0, imprime 1
quando i = 1, imprime 2
quando i = 2, imprime 3
quando i = 3, imprime 5
quando i = 4, imprime 8
quando i = 5, imprime 13
quando i = 6, imprime 21
quando i = 7, imprime 34, a condição de verificação é (ilogo n-2 = 8 => n = 10

Outra forma de resolver, bem simples.

n = quantidade de números. Como são 10 números na sequência, então n = 10.

x e y são os números iniciais, que são 0 e 1.

Clique para visualizar este comentário

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