Calcular la Media de un Conjunto de Datos en C

CBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderás a calcular la media de un conjunto de datos en el lenguaje de programación C. El laboratorio cubre los siguientes pasos:

  1. Leer un array de números desde la entrada del usuario.
  2. Calcular la suma de los números y luego determinar la media dividiendo la suma por el número de elementos.
  3. Imprimir la media calculada.

El laboratorio proporciona una guía paso a paso, incluyendo código de ejemplo, para ayudarte a comprender el proceso de cálculo de la media en C. Al finalizar este laboratorio, tendrás las habilidades para analizar y resumir datos numéricos utilizando programación en C.

Leer un Array de Números

En este paso, aprenderás a leer un array de números en programación C. Crearemos un programa simple que permita a los usuarios introducir un conjunto de números y almacenarlos en un array.

Primero, creemos un nuevo archivo C en el directorio ~/project:

cd ~/project
nano mean_calculation.c

Ahora, introduce el siguiente código:

#include <stdio.h>

#define MAX_SIZE 100

int main() {
    int numbers[MAX_SIZE];
    int count;

    // Solicita al usuario el número de elementos
    printf("Introduce el número de elementos (máximo %d): ", MAX_SIZE);
    scanf("%d", &count);

    // Validación de la entrada
    if (count <= 0 || count > MAX_SIZE) {
        printf("Número de elementos inválido!\n");
        return 1;
    }

    // Lee los números en el array
    printf("Introduce %d números:\n", count);
    for (int i = 0; i < count; i++) {
        printf("Introduce el número %d: ", i + 1);
        scanf("%d", &numbers[i]);
    }

    // Imprime los números introducidos
    printf("\nLos números introducidos son:\n");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");

    return 0;
}

Compila el programa:

gcc mean_calculation.c -o mean_calculation

Ejecuta el programa:

./mean_calculation

Salida de ejemplo:

Introduce el número de elementos (máximo 100): 5
Introduce 5 números:
Introduce el número 1: 10
Introduce el número 2: 20
Introduce el número 3: 30
Introduce el número 4: 40
Introduce el número 5: 50

Los números introducidos son:
10 20 30 40 50

Desglose de las partes clave del código:

  • #define MAX_SIZE 100 establece un límite máximo para el tamaño del array.
  • scanf() se utiliza para leer el número de elementos y los números individuales.
  • Validamos la entrada para asegurarnos de que está dentro del rango permitido.
  • Se utiliza un bucle for para introducir y mostrar los números.

Este programa demuestra cómo:

  1. Declarar un array con un tamaño máximo.
  2. Obtener el número de elementos del usuario.
  3. Introducir números en el array.
  4. Validar la entrada del usuario.
  5. Mostrar los números introducidos.

Calcular Suma y Media = Suma/Conteo

En este paso, ampliaremos el programa anterior para calcular la suma y la media de los números introducidos por el usuario.

Abre el archivo existente:

cd ~/project
nano mean_calculation.c

Modifica el código para incluir el cálculo de la suma y la media:

#include <stdio.h>

#define MAX_SIZE 100

int main() {
    int numbers[MAX_SIZE];
    int count;
    int sum = 0;
    float mean;

    // Solicita al usuario el número de elementos
    printf("Introduce el número de elementos (máximo %d): ", MAX_SIZE);
    scanf("%d", &count);

    // Validación de la entrada
    if (count <= 0 || count > MAX_SIZE) {
        printf("Número de elementos inválido!\n");
        return 1;
    }

    // Lee los números en el array y calcula la suma
    printf("Introduce %d números:\n", count);
    for (int i = 0; i < count; i++) {
        printf("Introduce el número %d: ", i + 1);
        scanf("%d", &numbers[i]);
        sum += numbers[i];
    }

    // Calcula la media
    mean = (float)sum / count;

    // Imprime los resultados
    printf("\nLos números introducidos son:\n");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");

    printf("Suma de los números: %d\n", sum);
    printf("Media de los números: %.2f\n", mean);

    return 0;
}

Compila el programa:

gcc mean_calculation.c -o mean_calculation

Ejecuta el programa:

./mean_calculation

Salida de ejemplo:

Introduce el número de elementos (máximo 100): 5
Introduce 5 números:
Introduce el número 1: 10
Introduce el número 2: 20
Introduce el número 3: 30
Introduce el número 4: 40
Introduce el número 5: 50

Los números introducidos son:
10 20 30 40 50
Suma de los números: 150
Media de los números: 30.00

Cambios clave en esta versión:

  • Se añadió la variable sum para realizar un seguimiento del total de todos los números.
  • Se integró el cálculo de la suma en el bucle de entrada.
  • Se calculó la media dividiendo la suma por el conteo.
  • Se utilizó la conversión de tipo (float) para asegurar la división en punto flotante.
  • Se añadió la salida de la suma y la media con impresión formateada.

El programa ahora demuestra:

  1. El cálculo de la suma de los elementos del array.
  2. El cálculo de la media aritmética.
  3. La visualización de los resultados con precisión.

Imprimir la Media

En este último paso, refactorizaremos el código para crear una función para calcular e imprimir la media, haciendo que nuestro programa sea más modular y legible.

Abre el archivo existente:

cd ~/project
nano mean_calculation.c

Actualiza el código con una función dedicada para el cálculo de la media:

#include <stdio.h>

#define MAX_SIZE 100

// Función para calcular e imprimir la media
void calculateMean(int numbers[], int count) {
    if (count <= 0) {
        printf("Error: No hay números para calcular la media.\n");
        return;
    }

    int sum = 0;
    float mean;

    // Calcula la suma
    for (int i = 0; i < count; i++) {
        sum += numbers[i];
    }

    // Calcula la media
    mean = (float)sum / count;

    // Imprime estadísticas detalladas
    printf("\nEstadísticas:\n");
    printf("Número de elementos: %d\n", count);
    printf("Suma de los números: %d\n", sum);
    printf("Media de los números: %.2f\n", mean);
}

int main() {
    int numbers[MAX_SIZE];
    int count;

    // Solicita al usuario el número de elementos
    printf("Introduce el número de elementos (máximo %d): ", MAX_SIZE);
    scanf("%d", &count);

    // Validación de la entrada
    if (count <= 0 || count > MAX_SIZE) {
        printf("Número de elementos inválido.\n");
        return 1;
    }

    // Lee los números en el array
    printf("Introduce %d números:\n", count);
    for (int i = 0; i < count; i++) {
        printf("Introduce el número %d: ", i + 1);
        scanf("%d", &numbers[i]);
    }

    // Imprime los números introducidos
    printf("\nNúmeros introducidos:\n");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");

    // Calcula e imprime la media
    calculateMean(numbers, count);

    return 0;
}

Compila el programa:

gcc mean_calculation.c -o mean_calculation

Ejecuta el programa:

./mean_calculation

Salida de ejemplo:

Introduce el número de elementos (máximo 100): 4
Introduce 4 números:
Introduce el número 1: 10
Introduce el número 2: 20
Introduce el número 3: 30
Introduce el número 4: 40

Números introducidos:
10 20 30 40
Estadísticas:
Número de elementos: 4
Suma de los números: 100
Media de los números: 25.00

Mejoras clave en esta versión:

  • Se creó una función separada calculateMean().
  • Se añadió una salida estadística más detallada.
  • Se mejoró la gestión de errores para casos especiales.
  • Se mantuvo la misma funcionalidad principal que los pasos anteriores.
  • Se hizo el código más modular y fácil de leer.

El programa demuestra:

  1. Un enfoque basado en funciones para los cálculos.
  2. Una salida estadística completa.
  3. Un diseño de código modular.

Resumen

En este laboratorio, aprenderás a leer un array de números en programación C, calcular la suma y la media del conjunto de datos y, a continuación, imprimir la media. En primer lugar, solicitarás al usuario que introduzca un conjunto de números y los almacenarás en un array. A continuación, calcularás la suma de los números y la dividirás por el conteo para obtener la media. Finalmente, imprimirás la media calculada.

Los pasos clave cubiertos en este laboratorio incluyen la declaración de un array con un tamaño máximo, la obtención del número de elementos del usuario, la introducción de números en el array, la validación de la entrada del usuario y la visualización de los números introducidos. Al final del laboratorio, tendrás una comprensión clara de cómo calcular la media de un conjunto de datos en programación C.