Elmer David Mosquera Martinez
Ejercicio terminado:
Aprender a manejar variables en Kotlin es el primer paso para construir programas que respondan a datos reales: nombres, números, porcentajes y estados lógicos. Aquí entenderás cómo declararlas, cuándo usar cada tipo y cómo convertir valores entre ellos, todo aplicado a un ejemplo de bandeja de correos.
Una variable es un espacio de memoria que guarda un dato concreto. Puede ser texto, un número entero, un decimal o un valor verdadero/falso. Y en Kotlin, la forma en que la declares define si tu programa será flexible o estricto con esos datos.
¿Cuál es la diferencia entre val y var en Kotlin?
Kotlin te ofrece dos palabras reservadas para crear variables, y elegir entre ellas no es un detalle menor: define si tu dato puede cambiar o no a lo largo del programa [00:36].
Con val declaras una variable inmutable. Una vez le asignas un valor, el compilador no te deja reasignarlo. Si lo intentas, verás el error val cannot be reassigned.
kotlin val nombreUsuario = "Juan" var nombreUsuario2 = "Carlos" nombreUsuario2 = "Pablo" // válido
Con var, en cambio, trabajas con una variable mutable: puedes reasignarla cuantas veces necesites. La inmutabilidad de val es una señal al compilador de que ese dato no cambiará, lo que hace tu código más seguro y predecible.
¿Cuándo usar val y cuándo var en Kotlin? Usa
valcuando el valor no va a cambiar (nombres de usuario, constantes). Usavarcuando necesites reasignar (contadores, estados que evolucionan).
¿Cuáles son los tipos de datos básicos en Kotlin?
A lo largo del ejemplo aparecen los cuatro tipos que más usarás en programas reales [04:30].
"Juan" o el asunto de un correo.emailsNoLeidos = 5.F, como 75.5F para un porcentaje.true o false, ideales para banderas como esUrgente.Existen variantes de mayor capacidad: el tipo Double maneja decimales mucho más grandes que Float, y el Long almacena enteros gigantes, del orden de miles de millones [07:00]. La elección depende del rango de valores que esperas y del consumo de memoria que estés dispuesto a asumir.
¿Qué es la inferencia de tipos en Kotlin?
Kotlin puede deducir el tipo de una variable a partir del valor que le asignas. A esto se le llama inferencia de tipo de dato [05:50].
kotlin val totalEmails: Int = 150 // declaración explícita val totalEmails = 150 // Kotlin infiere que es Int
Ser explícito es útil cuando quieres postergar la inicialización o dejar clara la intención del código. Cuando declaras el tipo sin asignar valor, estás separando la declaración de la inicialización, algo común al trabajar con datos que llegarán después.
¿Cómo concatenar variables en un mensaje con Kotlin?
Imprimir variables sueltas funciona, pero el código gana claridad cuando las integras dentro de un mensaje. Kotlin lo resuelve con el signo $ antes del nombre de la variable, dentro de un string [03:50].
kotlin println("Usuario: $nombreUsuario, emails: $emailsNoLeidos") // Resultado: Usuario: Juan, emails: 3
Esta técnica se llama string templating y reemplaza la concatenación tradicional con +. Es más legible y evita errores cuando combinas varios valores.
¿Cómo convertir tipos de datos en Kotlin?
En programación real es común recibir un texto desde la consola y necesitar operarlo como número. Kotlin ofrece funciones de conversión directas [08:20].
numero.toString() convierte un Int en String.texto.toInt() convierte un String numérico en Int.valor.toFloat() convierte un entero en decimal para cálculos más precisos.Aunque en consola el cambio puede no ser visible, internamente cambia cómo el programa trata ese dato. Y aquí viene un detalle clave: si divides dos enteros, Kotlin asume que el resultado también será entero, y trunca los decimales.
kotlin val leidos = 15 val totales = 20 println(leidos / totales) // imprime 0, no 0.75
Para obtener el resultado real, al menos uno de los operandos debe ser Float. El compilador siempre opera tomando como referencia el tipo de mayor tamaño.
¿Por qué 15 dividido 20 da 0 en Kotlin? Porque ambos son enteros y el compilador devuelve un entero, descartando los decimales. Convierte uno a
Floatcon.toFloat()y obtendrás0.75.
¿Cómo calcular un porcentaje combinando variables en Kotlin?
El ejercicio práctico de la clase reúne todo lo anterior: declarar una variable inmutable con val, dos mutables con var y calcular el porcentaje de correos enviados [11:30].
kotlin val nombre = "María" var recibidos = 6 var enviados = 4 val porcentajeEnviados = (enviados.toFloat() / (recibidos + enviados)) * 100 println("$nombre tiene enviados $porcentajeEnviados % de sus correos")
Los paréntesis agrupan la suma para que se ejecute antes de la división, igual que en una calculadora. La conversión de enviados a Float evita el truncamiento, y la multiplicación por 100 transforma la proporción en porcentaje. El resultado: María tiene enviados 40% de sus correos.
El contexto de tu programa decide qué tipo necesitas en cada momento. Un contador pide Int, un porcentaje pide Float, una bandera pide Boolean y una etiqueta pide String. Cuéntame en los comentarios qué tipo de variable se te complica más al elegir.
Elmer David Mosquera Martinez
Ejercicio terminado:
Jimmy Alexander Tejedor Romero
Completado el ejercicio, interesante, porque para conseguir el resultado todo hacer materia de investigación jaja
Miguel Lozano
val nombre = "Miguel" var recibidos = 12 var enviados = 8 var totalCorreos = recibidos + enviados var porcentajeEnviados = (enviados.toFloat() / totalCorreos) * 100 println("Usuario: $nombre") println("Correos recibidos: $recibidos") println("Correos enviados: $enviados") println("Total de correos: $totalCorreos") println("Porcentaje de correos enviados: $porcentajeEnviados%")
val nombre = "Miguel"var recibidos = 12var enviados = 8var totalCorreos = recibidos + enviadosvar porcentajeEnviados = (enviados.toFloat() / totalCorreos) * 100println("Usuario: $nombre")println("Correos recibidos: $recibidos")println("Correos enviados: $enviados")println("Total de correos: $totalCorreos")println("Porcentaje de correos enviados: $porcentajeEnviados%")
Alejandro Javier Viscarra Hernández
KELVIN WILFREDO RECINOS MONTERROSA
Ejercicio finalizado:
Carlos José Cortez Portillo
Martin Antonio Peralta Correa
Wilson hernandez
Número entero grande almacenado en un Int, usando _ para mejorar la legibilidad
val numeroLargoInt: Int = 100_000_000
Número entero grande almacenado en un Long, usando _ y el sufijo L para indicar el tipo Long
val numeroLargoLong: Long = 1_000_000_000L
Gabriel José Solari Morales
Una alternativa para reconocer el tipo de dato como Double es la siguiente:
var emailsRecibidos = 20.0 var emailsEnviados = 5.0
De esta forma no es necesario hacer el casteo.
Fer Gz
Se me habia olvidado la suma total de los correos, pero lo logre 😊
Miguel Pineda
Pablo Cristóbal Castro
Hola profe.
¿Porqué el porcentaje está dentro de unas llaves (usted le dice corchetes, dejémoslo en "curly braces" :-D)?
Entiendo que el uso de llames "{}" sirve para dar más opciones como añadir algo de código además del nombre de la variable/campo en cuestión, pero aquí no parece necesario.
Thnx in advance.
Juan Gaines
ProfesorUtilizamos los {} cuando queremos interpolar una operación más compleja o invocar una variable de un objeto. Un buen ejercicio podría ser colocar el cálculo del porcentaje y no usar la variable. Cuando es solo un dato o variable se puede omitir.
Juan Gaines
ProfesorGracias a ti Pablo por la pregunta. Si tienes más contento de ayudar a resolverlas
Pablo Cristóbal Castro
Olvidé poner el código en cuestión