Ybadoo - Soluções em Software Livre
Turmas
1º Semestre de 2026

(Poscomp, 2025) O comando de seleção ___________ permite que a execução de um trecho de programa dependa de uma condição ser verdadeira, isto é, vincula a execução de um ou mais comandos ao resultado obtido na avaliação de uma expressão lógica, cuja avaliação produz um resultado verdadeiro ou falso.

Assinale a alternativa que preenche corretamente a lacuna do trecho acima.

A simples.

B dupla.

C aninhada.

D múltipla.

E aleatória.

Observe a função recursiva a seguir, desenvolvida para a máquina genérica.

função xpto(n)
se (n <= 1)
então retornar 1;
senão retornar xpto(n - 1) + xpto(n - 2);
fim se
fim função

Considerando-se que essa função sempre será chamada com o valor da variável n pertencendo ao conjunto dos números naturais não nulos (n ∈ ℕ*), o seu valor de retorno será:

A O enésimo termo da sequência de Fibonacci.

B O somatório dos n primeiros números naturais não nulos.

C O enésimo termo da sequência yk = yk-1 + k.

D O enésimo termo da sequência yk = yk-1 + 2.

E O somatório dos n primeiros números naturais pares não nulos.

Analise as assertivas a seguir:

  1. A equivalência forte de programas permite analisar programas do ponto de vista da sua complexidade estrutural, ou outros critérios considerados relevantes (legibilidade, etc.), uma vez que, do ponto de vista funcional, eles são equivalentes.
  2. Dado um programa P qualquer (monolítico, iterativo ou recursivo), é sempre possível obter um outro programa P’ (monolítico, iterativo ou recursivo) tal que P’ seja fortemente equivalente a P.
  3. Uma função computada é um mapeamento entre o conjunto de valores de entrada e o conjunto de valores de saída, realizado por meio de uma sequência finita de computações.
  4. A classe dos programas iterativos está contida na classe dos programas recursivos, que, por sua vez, está contida na classe dos programas monolíticos.

Quais das assertivas apresentadas estão corretas?

A apenas as assertivas I e II.

B apenas as assertivas I e III.

C apenas as assertivas II e III.

D apenas as assertivas II e IV.

E apenas as assertivas III e IV.

Desenvolver um programa monolítico, utilizando instruções rotuladas, sobre a máquina 2_REG, que implemente a função B = (A * 2) - (A / 3).

Considere o programa monolítico, utilizando instruções rotuladas, sobre a máquina 2_REG, apresentado a seguir.

R1: Se a_zero então vá_para R0 senão vá_para R2;
R2: Faça subtrair_a vá_para R3;
R3: Se a_zero então vá_para R4 senão vá_para R7;
R4: Faça adicionar_b vá_para R5;
R5: Faça adicionar_b vá_para R6;
R6: Faça adicionar_b vá_para R1;
R7: Faça subtrair_a vá_para R8;
R8: Se a_zero então vá_para R0 senão vá_para R5;

Analise as seguintes assertivas sobre o programa apresentado.

  1. Caso a entrada fornecida seja 4 a saída será 5.
  2. Caso a entrada fornecida seja 5 a saída será 7.
  3. Caso a entrada fornecida seja 6 a saída será 4.
  4. Caso a entrada fornecida seja 7 a saída será 6.

Quais das assertivas apresentadas estão corretas?

A apenas as assertivas I e II.

B apenas as assertivas I e III.

C apenas as assertivas II e III.

D apenas as assertivas II e IV.

E apenas as assertivas III e IV.

Funções computadas permitem introduzir algumas importantes relações de equivalência de programas e máquinas, em especial, a relação de equivalência forte de programas, na qual um par de programas pertence à relação se as correspondentes funções computadas coincidem para qualquer máquina. As funções computadas por programas fortemente equivalentes têm a propriedade de que os mesmos testes e as mesmas operações são efetuados na mesma ordem, independentemente do significado deles. Apresente o programa monolítico, utilizando fluxogramas, que seja fortemente equivalente ao programa recursivo apresentado a seguir.

função R()
A;
se T
então S();
senão B;
fim se;
fim função;

função S()
se U
então C;
senão R();
fim se;
fim função;

função principal()
X;
S();
fim função;

Desenvolva um programa iterativo, sobre a máquina genérica, que apresente a sequência de Tribonacci, definida recursivamente pela fórmula Fn = Fn-1 + Fn-2 + Fn-3, sendo F0 = 0, F1 = 1 e F2 = 1.

O valor de n será fornecido pelo usuário, devendo ser um valor inteiro maior ou igual a zero.

Por exemplo, caso o valor fornecido pelo usuário para n seja 6, o programa deverá apresentar como resposta a sequência de números 0 1 1 2 4 7 13.

Caso o usuário forneça um valor inválido para n, o programa deverá apresentar como resposta o valor -1.

Desenvolver um programa recursivo, sobre uma máquina genérica, que apresente o Mínimo Múltiplo Comum (MMC) entre dois números.

Por exemplo, caso os valores fornecidos pelo usuário sejam 12 e 45, o programa deverá apresentar como resposta o valor 180.

Caso o usuário forneça valores inválidos, o programa deverá apresentar como resposta o valor -1.