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 A

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 < 5) null else (it + 1)
}
println(aux) // a)
val res = aux.mapNotNull {
if (it != null) it >= 5 else null
}
println(res) // b)

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 os elementos da primeira lista, exceto elementos adjacentes repetidos. A lista final também não
pode conter elementos repetidos. O programa deve ter o comportamento indicado no exemplo.
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: [8, 1, 3, 2]

Você também pode gostar