- ID
- 2614558
- Banca
- COPERVE - UFSC
- Órgão
- UFSC
- Ano
- 2018
- Provas
- Disciplina
- Programação
- Assuntos
Para a questão, considere a existência de uma linguagem de programação fictícia, chamada “K”, que possui os seguintes comandos:
• comando de atribuição, que atribui um valor a uma variável. Por exemplo, na linha “v1 = v2 + v3”, o comando está sendo usado para atribuir um valor para a variável v1, sendo esse valor o resultado da soma dos valores das variáveis v2 e v3;
• comando de seleção, que executa um comando caso o valor de uma expressão seja verdadeiro. Por exemplo, na linha “se (v1 == 5) {v2 = 7}”, o comando de atribuição será executado somente se a expressão “v1 == 5” for verdadeira, ou seja, se o valor da variável v1 for igual a 5;
• comando de repetição, que executa um comando exatamente N vezes. Por exemplo, na linha “repita 5 vezes {v1 = v1 + 3}”, o comando de atribuição será executado cinco vezes;
• comando de repetição, que executa um comando enquanto uma expressão for verdadeira. Por exemplo, na linha “enquanto (v1 <= 6 E v2 == 3) {v1 = v1 - 3}”, o comando de atribuição será executado enquanto as expressões “v1 <= 6” e “v2 == 3” forem verdadeiras, ou seja, enquanto o valor da variável v1 for menor ou igual a 6 e o valor da variável v2 for igual a 3.
Considere o seguinte procedimento recursivo p, escrito na linguagem K:
procedimento p (n) {
se (n < 5)
retorne n
retorne p(n - 3)
}
v1 = p(3)
v2 = p(8)
Sabendo que o valor de v1 é 3, qual é o valor de v2?