SóProvas


ID
1055893
Banca
CESPE / CEBRASPE
Órgão
STF
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em relação aos conceitos de programação orientada a objetos e lógica de programação, julgue os itens subsequentes.

O resultado abaixo será obtido ao se executar o algoritmo que a ele se segue.

Resultado:

1 0;
0 0;
2 1;
1 0;
3 2;
2 2;

Algoritmo:

program p;
var v: inteiro;
funcao f(v: inteiro; var k:inteiro): inteiro;
var p,q:inteiro;
inicio
se v < 2
então inicio
f := v;
k := 0;
fim
senão inicio
f := f(v-1, p) + f(v-2, q);
k := p + q + 1;
fim;
escreva(n,' ',k,'; ');
fim ;
inicio
n := 4;
escreva(f(3,n),n);
fim

Alternativas
Comentários
  • Eu marquei errado. Acertei na intuição, tentei fazer o caminho do algoritmo na mão. Mas não consegui entender direito algumas partes. Acredito que esteja me confundindo na ideia de passagem de parâmetros por valor e por referência. Alguém posta o resultado correto?

     

    =)

  • Marquei errado logo de cara quando vi a linha "se v < 2", sendo q v é null.... daria exceção... ao meu entender.. será que estou certo?

  • f(v,k) -> é chamada em escreva (f(3,n),n) -> f(3,n) ou Seja, o valor de v = 3 e k = n.

  • Marquei errado, pois não aparece no algoritmo a declaração da variável "n" o que da erro de sintaxe.

  • marquei errado, pois pelo que entendi não existe atribuição de valor à variável p e a variável q para poder verificar a função. 

  • A questão tem vários erros, pelo que me parece. As variáveis não estão bem declaradas, o programa não é devidamente carregado e não há nenhum loop para a execução com repetição do código.

  • Começando pelo início da função

    inicio
               n := 4;
               escreva(f(3,n),n);
    fim

    Vê-se que no final ele deveria imprimir: "resultado de f(3,n)" e "4"

    E na última linha do resultado tem o valor 2

  • Força Guerreiro!!!!!!