Está en la página 1de 3

Vicerrectoría Académica

Dirección de Servicios Académicos


Subdirección de Servicios a Escuelas

ACTIVIDAD DE APRENDIZAJE PRESENCIAL 6


Lambda y Colecciones List, Map, Set
Material de apoyo
Presentación 1-11 DAA, disponibles en el AVA

1. Confeccionar una agenda. Utilizar un MutableMap cuya clave sea de la clase Fecha:
data class Fecha(val dia: Int, val mes: Int, val año: Int)
Como valor en el mapa almacenar un String.
Implementar las siguientes funciones:
1) Carga de datos en la agenda.
2) Listado completo de la agenda.
3) Consulta de una fecha.
2. Definir un MutableSet y almacenar 6 valores aleatorios comprendidos entre 1 y 50. El objeto de tipo
MutableSet representa un cartón de lotería.
Comenzar a generar valores aleatorios (comprendidos entre 1 y 5) todos distintos y detenerse
cuando salgan todos los que contiene el cartón de lotería. Mostrar cuantos números tuvieron que
sortearse hasta que se completó el cartón.

Soluciones

1.-
data class Fecha(val dia: Int, val mes: Int, val año: Int)

fun cargar(agenda: MutableMap<Fecha, String>) {


do {
println("Ingrese fecha")
print("Ingrese el día:")
val dia = readLine()!!.toInt()
print("Ingrese el mes:")
val mes = readLine()!!.toInt()
print("Ingrese el año:")
val año = readLine()!!.toInt()
print("Ingrese todas las actividades para ese día:")
val actividades = readLine()!!
agenda[Fecha(dia, mes, año)] = actividades
print("Ingrese otra fecha (si/no):")
val opcion = readLine()!!
} while (opcion == "si")
}

fun imprimir(agenda: MutableMap<Fecha, String>) {


for((fecha, actividad) in agenda) {
Vicerrectoría Académica
Dirección de Servicios Académicos
Subdirección de Servicios a Escuelas

println("Fecha ${fecha.dia}/${fecha.mes}/${fecha.año}")
println("Actividades: $actividad")
println()
}
}

fun consultaFecha(agenda: MutableMap<Fecha, String>) {


println("Ingrese una fecha a consultar")
print("Ingrese el día:")
val dia = readLine()!!.toInt()
print("Ingrese el mes:")
val mes = readLine()!!.toInt()
print("Ingrese el año:")
val año = readLine()!!.toInt()
val fecha = Fecha(dia, mes, año)
if (fecha in agenda)
println("Actividades: ${agenda[fecha]}")
else
println("No existen actividades registradas para dicha fecha")
}

fun main(args: Array<String>) {


val agenda: MutableMap<Fecha, String> = mutableMapOf()
cargar(agenda)
imprimir(agenda)
consultaFecha(agenda)
}
Vicerrectoría Académica
Dirección de Servicios Académicos
Subdirección de Servicios a Escuelas

2.-
fun generarCarton(carton: MutableSet<Int>) {
do {
val valor = ((Math.random() * 50) + 1).toInt()
carton.add(valor)
} while (carton.size!=6)
}

fun generarBolillero(bolillero: MutableSet<Int>) {


do {
val valor = ((Math.random() * 50) + 1).toInt()
bolillero.add(valor)
} while (bolillero.size!=50)
}

fun verificarTriunfo(carton: MutableSet<Int>, bolillero: MutableSet<Int>) {


var aciertos = 0
var cantBolillas = 0
var intentos = 0
for(bolilla in bolillero) {
cantBolillas++
if (bolilla in carton) {
aciertos++
if (aciertos == 6) {
intentos = cantBolillas
break
}
}
}
println("Se sacaron $intentos bolillas hasta que el cartón ganó.")
}

fun main(args: Array<String>) {


val carton: MutableSet<Int> = mutableSetOf()
generarCarton(carton)
println("Carton de lotería generado")
println(carton)
val bolillero: MutableSet<Int> = mutableSetOf()
generarBolillero(bolillero)
println("Numeros del bolillero")
println(bolillero)
verificarTriunfo(carton, bolillero)
}

También podría gustarte