SóProvas


ID
2626609
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue o item subsequente, relativo à lógica de programação.


O pseudocódigo a seguir, após executado, apresentará como resultado 2.370.

inteiro contador = 1;

inteiro exp = 1;

real y = 0;

real aux = 1;

real n = 1;


faça {

     y = (1 + (1 / n));

    

    enquanto (exp <= contador) {

    aux = y * aux;

    exp++;

    }

    exp = 1;

    escreva(aux);

   

    contador++;

    aux = 1;

    n++;

 } enquanto (contador <= 2);

Alternativas
Comentários
  • Não sei se fiz certo, rsrs, mas pra mim deu 22,25

    2 no primeiro loop e 2,25 no segundo. Após isso fechou-se o pseudocódigo sem mais repetições.

    Como a função "escreva(aux)" não declara nenhum parâmetro de separação, concatenam-se as saídas 2 e 2,25 gerando 22,25

     

  • Isto é um código ofuscado.

    Y só será influenciado pelo valor de N.

    N sofre incremento a cada ciclo, assim como contador: n++, contador++

    AUX e EXP sempre serão 1 ao iterar o loop.

    As únicas saídas "úteis" do código são: o contador ficar com o valor 2 e a escrita de aux (2 e 2,25) na saída padrão.

  • Encontrei a mesma saída do Leonardo e do Paulo. Imprime "2" na primeira iteração e "2,25" na segunda.

  • enjoadinho esse algoritmo...imagina na hro da prova

  • Gabarito: ERRADO

    Passagem 1: contador = 1, exp = 1, y = 0, aux = 1, n = 1 {

    y = (1 + (1 / n(1))) = 2

    enquanto (exp(1) <= contador(1)) (true) {

    aux = y(2) * aux(1) = 2

    exp = exp(1)++ = 2

    }

    enquanto (exp(2) <= contador(1)) (false) {}

    exp=1

    escreva(aux); // 2

    contador(1)++ = 2

    aux=1;

    n(1)++ = 2

    } enquanto(contador(2) <= 2) (true);

    Passagem 2: contador = 2, exp = 1, y = 2, aux = 1, n = 2 {

    y = (1 + (1 / n(2))) = 1.5

    enquanto (exp(1) <= contador(2)) (true) {

    aux = y(1.5) * aux(1) = 1.5

    exp = exp(1)++ = 2

    }

    enquanto (exp(2) <= contador(2)) (true) {

    aux = y(1.5) * aux(1.5) = 2.25

    exp = exp(2)++ = 3

    }

    enquanto (exp(3) <= contador(2)) (false)

    exp=1

    escreva(aux); // 2.25

    contador(2)++ = 3

    aux=1;

    n(2)++ = 3

    } enquanto(contador(3) <= 2) (false);

    Portanto, o último número impresso é 2.25.

  • Força Guerreiro!!!!!!

  • de outra forma baseado na resposta da @Servidor Público da TI 

    ao iniciar o código apresenta: Contador =1 | exp = 1 | y = 0 | aux = 1 | n = 1

     

    1 º Faça: 0 =(1(+(1/1)

    Y=2

     Após o faça: Contador =1 | exp = 1 | y = 2 | aux = 1 | n = 1

    2º Enquanto (enquanto for verdade repete, quando for falso pula para próximo passo)

    enquanto (exp <= contador) {

    Enquanto (1<=1) = verdadeiro

    aux = y * aux;     | aux = 2* 1 -> aux = 2

    exp++;                | 1 ++ = 2 ( ++ é operador de incremento, adicionando +1 ao valor)

    Após: Contador =1 | exp = 2 | y = 2 | aux = 2 | n = 1

    3º enquanto (exp <= contador)

    Enquanto(2<=1) = Falso (pulamos para próximo passo por que = Falso)

    4º Exp = 1

          Escreva(aux); -> aux = 2

         Contador ++ ; -> 1 ++ = 2 ( ++ é operador de incremento, adicionando +1 ao valor)

         AUX = 1

          N=++ -> 1++ = 2

     

    Contador =2 | exp = 1 | y = 2 | aux = 1 | n = 2

     

    5º Enquanto (contador <=2);

    Enquanto(2<=2); = VERDADEIRO  (repete o passo 1º, começa tudo de novo)

     

    1.2º FAÇA  y = (1 + (1 / n));

       Y = (1+(1/2) (conforme informações da etapa 4º)

       Y = 1,5

    Contador =2 | exp = 1 | y = 1,5  | aux = 1 | n = 2

     

    Continua....