La Función average En Kotlin

ANUNCIO
Loading...

En este tutorial aprenderás a usar la función average en Kotlin con el fin de obtener el promedio de los elementos de una colección de números.

Función average()

La función de extensión average() retorna la media aritmética (promedio) de una colección (arreglos, iterables y secuencias) de elementos numéricos. El valor de retorno es Double sin importar el tipo de ítems:

// sintaxis de average() desde un IntArray fun IntArray.average(): Double // sintaxis de average() desde un Iterable<Float> @JvmName("averageOfFloat") fun Iterable<Float>.average(): Double // sintaxis de average() en una secuencia de Byte fun Sequence<Byte>.average(): Double
Lenguaje del código: Kotlin (kotlin)

Recuerda que la media se calcula sumando de todos los valores numéricos de la colección y dividiendo este resultado por la cantidad de sumandos que intervienen.

Promedio De Números Ingresados Por Teclado

Considera obtener la media de un arreglo de cinco enteros obtenidos por teclado del usuario. Si el usuario no ingresa una entrada válida, entonces interpretarla como un elemento cero. El siguiente programa representa este comportamiento:

fun main() { val userNumbers = mutableListOf<Int>() for (i in 1..5) { print("Digita número $i:") val userInput = readLine() val userNumber = convertUserInput(userInput) userNumbers += userNumber } val average = userNumbers.average() println("El promedio de $userNumbers es $average") } private fun convertUserInput(userInput: String?) = try { userInput!!.toInt() } catch (e: Exception) { 0 }
Lenguaje del código: Kotlin (kotlin)

Ejemplo de salida:

Digita número 1:1 Digita número 2:2 Digita número 3:no Digita número 4:5 Digita número 5:12 El promedio de [1, 2, 0, 5, 12] es 4.0
Lenguaje del código: CSS (css)

La solución consiste en leer cinco veces con un bucle for las entradas del usuario en la variable userInput. Luego se convierte este String anulable con convertUserInput(). Si existe una excepción de valor nulo o de conversión a entero, entonces se retorna 0.

Al final tomamos en la variable average el promedio obtenido al invocar average() desde la lista userNumbers. Y luego se hace la impresión respectiva.

Promedio De Precios De Juguetes

Tomemos otro ejemplo donde la colección de elementos no sea de tipo numérico, sino una clase de datos particular que sea resultante del diseño para una tienda de juguetes. El modelo representa los datos básicos nombre y precio de un juguete:

data class Toy(val name: String, val price: Int)
Lenguaje del código: Kotlin (kotlin)

Ahora, necesitamos calcular el promedio de los precios de los juguetes que se den en una lista. Para ello aplicamos el uso de average() de la siguiente forma:

fun main() { val toys = listOf( Toy("Cubo rubick", 5), Toy("Rompecabezas de patos", 12), Toy("Max Steel programador", 20), Toy("Monopoly", 18) ) val priceAvgToys = toys.map { it.price }.average() println("Media de precios: $priceAvgToys") }
Lenguaje del código: Kotlin (kotlin)

Salida:

Media de precios: 13.75
Lenguaje del código: CSS (css)

La solución consiste en usar la función map() para obtener una colección numérica requerida por la sintaxis de la función. De esta forma podemos promediar los cuatro valores de la propiedad Toy.price y obtener el resultado 13.75.

¿Ha sido útil esta publicación?