Go y Golang

Promedio de arreglos en Go

Introducción

Para sacar el promedio de valores de un arreglo, sólo tenemos que recorrer el mismo y sumar cada valor a una variable (la sumatoria). Finalmente dividir la sumatoria entre la longitud del arreglo, que en este caso la podemos obtener usando la función len.

Promedio de un arreglo con datos definidos por nosotros

En este caso el promedio es para un arreglo definido por nosotros mismos.

package main

import "fmt"

func main() {
 calificaciones := [10] int {78, 20, 55, 90, 99, 78, 96, 50, 80, 100};
 sumatoria := 0 //Aquí iremos sumando cada valor

 /*
  Recorrer el arreglo
 */ for _, calificacion := range calificaciones{
  sumatoria += calificacion
 }

 //El promedio es dividir la sumatoria entre el número de calificaciones
 promedio := sumatoria / len(calificaciones)


 fmt.Println("El promedio es", promedio)
}

Al ejecutarlo obtenemos lo siguiente:

Promedio de un arreglo con datos definidos por el usuario

Ahora vamos a pedir que el usuario nos dé diez calificaciones y dependiendo de ellas vamos a calcular el promedio.

Para pedir datos por teclado usamos fmt.Scanf y le pasamos la cadena de formato que en este caso es un entero y un salto de línea.

Hacemos un ciclo del 1 al 10 y preguntamos por cada calificación. Asignamos cada valor al arreglo, y finalmente calculamos la sumatoria y la dividimos entre la longitud del array.

package main

import "fmt"

func main() {
 var calificacionIntroducida int // Para escanear cada calificacion introducida por el usuario
 var calificaciones[10] int //Aquí guardaremos los valores

 /*
  Preguntar cada valor...
 */ for i:= 0; i < 10; i++{
  fmt.Printf("\nIntroduce la calificación %d: ", i + 1)
  fmt.Scanf("%d\n", &calificacionIntroducida)
  calificaciones[i] = calificacionIntroducida // y asignarlo
 }

 /*
  Calcular promedio
 */
 sumatoria := 0
 for _,calificacion := range calificaciones{
  sumatoria += calificacion
 }

 promedio := sumatoria / len(calificaciones)
 fmt.Printf("El promedio es %d", promedio)
}

Al ejecutarlo e ingresar los datos podemos ver esto:

Promedio de arreglo con longitud y datos definidos por el usuario

Para terminar este post; ahora no preguntaremos 10 calificaciones, sino las que el usuario desee.

Inicialmente preguntaremos de cuántas calificaciones desea sacar el promedio y dependiendo de ello asignaremos el arreglo. Después haremos lo mismo que en el ejercicio de arriba.

En este caso las cosas cambian un poco, ya que la definición de nuestro arreglo será un poco diferente.

Esto es debido a que no podemos declarar la longitud de un arreglo en tiempo de ejecución, por lo que mejor usaremos un slice. Un slice es un arreglo de longitud variable.

package main

import "fmt"

func main() {
 var calificacionIntroducida int // Para escanear cada calificacion introducida por el usuario
 var longitudArreglo int //La longitud

 /*
  Preguntar la longitud...
 */ fmt.Print("¿Cuántas calificaciones desea promediar? ")
 fmt.Scanf("%d\n", &longitudArreglo)

 /*
  En calificaciones guardaremos los valores
  Como no podemos asignar una longitud a un array en tiempo de ejecución, usamos
  un slice. Para crearlo llamamos a make y pasamos como primer argumento
  el tipo de dato que sería int, y como segundo la longitud que
  fue previamente escaneada
 */ calificaciones := make([] int, longitudArreglo) //Aquí guardaremos los valores.

 /*
  Preguntar cada valor...
 */ for i:= 0; i < longitudArreglo; i++{
  fmt.Printf("\nIntroduce la calificación %d: ", i + 1)
  fmt.Scanf("%d\n", &calificacionIntroducida)
  calificaciones[i] = calificacionIntroducida // y asignarlo
 }

 /*
  Calcular promedio
 */
 sumatoria := 0
 for _,calificacion := range calificaciones{
  sumatoria += calificacion
 }

 promedio := sumatoria / len(calificaciones)
 fmt.Printf("El promedio es %d", promedio)
}

Lo ejecuté dos veces para probar con diferentes longitudes:

Y con esto terminamos por hoy.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

15 horas hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

6 días hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Imprimir ñ en impresora térmica

En este post te enseñaré a imprimir la letra ñ en una impresora térmica. Voy…

4 semanas hace

Esta web usa cookies.