SóProvas


ID
1731265
Banca
CESPE / CEBRASPE
Órgão
STJ
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com relação à lógica de programação, julgue o próximo item.

O valor da variável e no fim da execução do seguinte algoritmo será 143.

 var


    a, b, c, d, e: Integer;

begin

    a := 0;

    b := 1;

    e := a+b;

    for c := 3 to 11 do

    begin

        e := e + (a + b);

        d := a;

        a := b;

        b := b + d;

  end;

end.

Alternativas
Comentários
  • Certo. Questão que avalia se você sabe como funciona uma estrutura de repetição e uma atribuição. Basta calcular na mão – o resultado será 143.


    http://www.estrategiaconcursos.com.br/blog/stj2015-analista-comentarios-da-prova-de-engenharia-de-software-e-desenvolvimento/
  • E onde incrementa o c no loop?

  • Prezados,

    A questão pede o valor da variável "e". Vamos acompanhar passo a passo
    a:= 0;
    b:=1;
    e:=a+b; e:=0+1; e=1;

    for c:= 3 to 11 do
    begin
        e:= e + (a+b )
        d:= a;
        a:=b;
        b:= b + d;
    end
    end

    Na primeira execução do for, com c = 3 , teremos :
    e:= e + ( a+ b ) ; 1+ 0 + 1 ; e=2
    d:= 0
    a:= 1;
    b:= b + d ; b = 1 + 0 , b=1

    Na segunda execução do for, com c =4, teremos
    e : = e + ( a + b ) ; 2 + 1 + 1 ; e = 4
    d:= 1
    a:= 1
    b:= b + d; b=1 + 1 ; b=2

    Na próxima  execução do for, com c =5, teremos
    e : = e + ( a + b ) ; 4 + 1 + 2 ; e = 7
    d:= 1
    a:= 2
    b:= b + d; b=2 + 1 ; b=3

    Na próxima execução do for, com c =6, teremos
    e : = e + ( a + b ) ; 7 + 2 + 3 ; e = 12
    d:= 2
    a:= 3
    b:= b + d; b=3 + 2 ; b=5

    Na próxima execução do for, com c =7, teremos
    e : = e + ( a + b ) ; 12 + 3 + 5 ; e = 20
    d:= 3
    a:= 5
    b:= b + d; b=5 + 3 ; b=8

    Na próxima execução do for, com c =8, teremos
    e : = e + ( a + b ) ; 20 + 5 + 8 ; e = 33
    d:= 5
    a:= 8
    b:= b + d; b=8 + 5 ; b=13

    Na próxima execução do for, com c =9, teremos
    e : = e + ( a + b ) ; 33 + 8 + 13 ; e = 54
    d:= 8
    a:= 13
    b:= b + d; b=13 + 8 ; b=21

    Na próxima execução do for, com c =10, teremos
    e : = e + ( a + b ) ; 54 + 13 + 21 ; e = 88
    d:= 13
    a:= 21
    b:= b + d; b=21 + 13 ; b= 34

    Na próxima execução do for, com c =11, teremos
    e : = e + ( a + b ) ; 88 + 21 + 34 ; e = 143
    d:= 21
    a:= 44
    b:= b + d; b=34 + 21 ; b=55

    Saímos do loop , e = 143.

    Portanto a questão está correta.
  • onde tem a resoluçao da questao?

  • Copiando e colando a solução do professor. Eu errei por faltar mais um passo na minha tabela. kkkkk Patético da minha parte!


    A questão pede o valor da variável "e". Vamos acompanhar passo a passo

    a:= 0;

    b:=1;

    e:=a+b; e:=0+1; e=1;


    for c:= 3 to 11 do

    begin

      e:= e + (a+b )

      d:= a;

      a:=b;

      b:= b + d;

    end

    end


    Na primeira execução do for, com c = 3 , teremos :

    e:= e + ( a+ b ) ; 1+ 0 + 1 ; e=2

    d:= 0

    a:= 1;

    b:= b + d ; b = 1 + 0 , b=1


    Na segunda execução do for, com c =4, teremos

    e : = e + ( a + b ) ; 2 + 1 + 1 ; e = 4

    d:= 1

    a:= 1

    b:= b + d; b=1 + 1 ; b=2


    Na próxima  execução do for, com c =5, teremos

    e : = e + ( a + b ) ; 4 + 1 + 2 ; e = 7

    d:= 1

    a:= 2

    b:= b + d; b=2 + 1 ; b=3


    Na próxima execução do for, com c =6, teremos

    e : = e + ( a + b ) ; 7 + 2 + 3 ; e = 12

    d:= 2

    a:= 3

    b:= b + d; b=3 + 2 ; b=5


    Na próxima execução do for, com c =7, teremos

    e : = e + ( a + b ) ; 12 + 3 + 5 ; e = 20

    d:= 3

    a:= 5

    b:= b + d; b=5 + 3 ; b=8


    Na próxima execução do for, com c =8, teremos

    e : = e + ( a + b ) ; 20 + 5 + 8 ; e = 33

    d:= 5

    a:= 8

    b:= b + d; b=8 + 5 ; b=13


    Na próxima execução do for, com c =9, teremos

    e : = e + ( a + b ) ; 33 + 8 + 13 ; e = 54

    d:= 8

    a:= 13

    b:= b + d; b=13 + 8 ; b=21


    Na próxima execução do for, com c =10, teremos

    e : = e + ( a + b ) ; 54 + 13 + 21 ; e = 88

    d:= 13

    a:= 21

    b:= b + d; b=21 + 13 ; b= 34


    Na próxima execução do for, com c =11, teremos

    e : = e + ( a + b ) ; 88 + 21 + 34 ; e = 143

    d:= 21

    a:= 44

    b:= b + d; b=34 + 21 ; b=55


    Saímos do loop , e = 143.


    Portanto a questão está correta.


  • Elicinei Paes, perceba que o loop é só para contar quantas vezes os calculos têm que ser realizados, de 3 até 11...!!! E sempre pegando o valor de "E" do anterior.

     

    Ex. No C = 3 o valor de e = 1               -----> e:= e + ( a+ b ) ; 1+ 0 + 1 ; e= 2
          No C = 4 o valor de e = 2               -----> e : = e + ( a + b ) ; 2 + 1 + 1 ; e = 4
          No C = 5 o valor de e = 4               -----> e : = e + ( a + b ) ; 4 + 1 + 2 ; e = 7

     

    e assim segue até o 13.

               

  • Força Guerreiro!!!!!!