Você está na página 1de 1

Instituto Superior de Engenharia de Lisboa - ADEETC

Programação
Semestre Inverno 2020/21
2.a Ficha – 12/Dez/2020 – VERSÃO B
Coloque a sua identificação na folha de resposta e indique a versão da sua ficha. Justifique todas as re-
spostas.
1. [8,0] Na primeira linha do programa seguinte, deve colocar os cinco dígitos do seu número de aluno. Indique,
justificando, qual a saída produzida pelo programa (conteúdo das listas aux e res nos pontos assinalados por a)
e b), respetivamente).
val source = listOf(_, _, _, _, _) // 5 Digitos do seu num. de aluno
val aux = source.map {
if (it >= 4) (it - 1) else null
}
println(aux) // a)
val res = aux.mapNotNull {
if (it != null) it >= 5 else null
}
println(res) // a)

2. [12,0] Realize um programa que pergunte ao utilizador o número de elementos a ler, n, e de seguida leia da
consola n valores inteiros para uma lista imutável. Dada a lista inicial, o programa instancia uma nova lista
imutável (lista final) que contém números de ocorrências de elementos adjacentes iguais presentes na primeira
lista, com a exceção de que a lista final não pode conter elementos repetidos. Ou seja, durante o processamento,
números de ocorrências calculados que já existam na lista final não são adicionados.
O programa deve ter o comportamento indicado no exemplo. A lista final resultante tem o seguinte significado:
foram encontradas três ocorrências consecutivas do valor 8, uma ocorrência consecutiva do valor 1, e duas ocor-
rências consecutivas do valor 8. Os outros números de ocorrências, por estarem repetidos, não foram adicionados.
Notas: Pode organizar o código usando mais do que uma função. Qualquer função que utilize, que não tenha sido
apresentada nas aulas, deve ser programada. Minimize o uso de pontos de mutabilidade (var) no programa. Para
imprimir uma lista lst basta fazer println(lst).
Exemplo:
$ kotlin Questao2Kt
Numero de elementos? 10
Valor 1?
8
Valor 2?
8
Valor 3?
8
Valor 4?
1
Valor 5?
3
Valor 6?
1
Valor 7?
8
Valor 8?
8
Valor 9?
1
Valor 10?
2
lista inicial: [8, 8, 8, 1, 3, 1, 8, 8, 1, 2]
lista final: [3, 1, 2]

Você também pode gostar