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
.
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:
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:
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.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.
Ver comentarios
Muchas Gracias ParziByte era exactamente el ejemplo que buscaba