Introducción
En este laboratorio, aprenderás a determinar la moda de un conjunto de datos en C. El laboratorio cubre los siguientes pasos:
Leer el Arreglo de Números: Aprenderás cómo leer un arreglo de números en C, que es el primer paso crucial para determinar la moda de un conjunto de datos. El programa permite la entrada de un conjunto de números y los prepara para el análisis de frecuencias.
Contar Frecuencias para Encontrar el Valor Más Común: Modificarás el programa anterior para contar las frecuencias de cada número en el arreglo e identificar el valor más común (moda).
Imprimir la Moda: Finalmente, imprimirás la moda, que es el valor que aparece con mayor frecuencia en el conjunto de datos.
Leer el Arreglo de Números
En este paso, aprenderás a leer un arreglo de números en C, que es el primer paso crucial para determinar la moda de un conjunto de datos. Crearemos un programa en C que permita la entrada de un conjunto de números y los prepare para el análisis de frecuencias.
Primero, creemos un nuevo archivo C para nuestro programa de cálculo de la moda:
cd ~/project
nano mode_calculation.c
Ahora, agrega el siguiente código al archivo:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int numbers[MAX_SIZE];
int n, i;
// Ingresa el número de elementos
printf("Ingrese el número de elementos (máximo %d): ", MAX_SIZE);
scanf("%d", &n);
// Ingresa los elementos del arreglo
printf("Ingrese %d enteros:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Imprime el arreglo ingresado para verificar la entrada
printf("Arreglo ingresado: ");
for (i = 0; i < n; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
Compila y ejecuta el programa:
gcc mode_calculation.c -o mode_calculation
./mode_calculation
Salida de ejemplo:
Ingrese el número de elementos (máximo 100): 5
Ingrese 5 enteros:
3 4 2 4 1
Arreglo ingresado: 3 4 2 4 1
Desglosemos las partes clave de este código:
#define MAX_SIZE 100establece un límite máximo para el arreglo para evitar desbordamientos.scanf()se utiliza para ingresar el número de elementos y los valores del arreglo.- Imprimimos el arreglo para verificar que la entrada se capturó correctamente.
El código demuestra la entrada básica de arreglos en C, esencial para nuestro proceso de cálculo de la moda. En los siguientes pasos, construiremos sobre esto para contar frecuencias y determinar la moda.
Contar Frecuencias para Encontrar el Valor Más Común
En este paso, modificaremos nuestro programa anterior para contar las frecuencias de cada número en el arreglo e identificar el valor más común (moda).
Abre el archivo existente y actualiza el código:
cd ~/project
nano mode_calculation.c
Reemplaza el código anterior con la siguiente implementación:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int numbers[MAX_SIZE];
int frequencies[MAX_SIZE] = {0};
int n, i, j, mode = 0, max_frequency = 0;
// Ingresa el número de elementos
printf("Ingrese el número de elementos (máximo %d): ", MAX_SIZE);
scanf("%d", &n);
// Ingresa los elementos del arreglo
printf("Ingrese %d enteros:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Cuenta las frecuencias de cada número
for (i = 0; i < n; i++) {
int count = 1;
for (j = 0; j < n; j++) {
if (i != j && numbers[i] == numbers[j]) {
count++;
}
}
frequencies[i] = count;
// Realiza un seguimiento de la moda
if (count > max_frequency) {
max_frequency = count;
mode = numbers[i];
}
}
// Imprime las frecuencias
printf("\nFrecuencias:\n");
for (i = 0; i < n; i++) {
printf("El número %d aparece %d vez(es)\n", numbers[i], frequencies[i]);
}
// Imprime la moda
printf("\nModa: %d (aparece %d veces)\n", mode, max_frequency);
return 0;
}
Compila y ejecuta el programa:
gcc mode_calculation.c -o mode_calculation
./mode_calculation
Salida de ejemplo:
Ingrese el número de elementos (máximo 100): 6
Ingrese 6 enteros:
2 3 4 2 2 5
Frecuencias:
2 aparece 3 vez(es)
3 aparece 1 vez(es)
4 aparece 1 vez(es)
2 aparece 3 vez(es)
2 aparece 3 vez(es)
5 aparece 1 vez(es)
Moda: 2 (aparece 3 veces)
Puntos clave de esta implementación:
- Creamos un arreglo
frequenciespara almacenar el conteo de cada número. - Los bucles anidados cuentan las ocurrencias de cada número único.
- Realizamos un seguimiento de la moda guardando la frecuencia máxima.
- El programa maneja casos con una sola moda.
Imprimir la Moda
En este paso final, mejoraremos nuestro programa de cálculo de la moda para manejar múltiples modas y proporcionar una salida más completa de información estadística.
Abre el archivo existente y actualiza el código:
cd ~/project
nano mode_calculation.c
Reemplaza el código anterior con la siguiente implementación:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int numbers[MAX_SIZE];
int frequencies[MAX_SIZE] = {0};
int unique_numbers[MAX_SIZE];
int n, i, j, unique_count = 0, max_frequency = 0;
// Ingresa el número de elementos
printf("Ingrese el número de elementos (máximo %d): ", MAX_SIZE);
scanf("%d", &n);
// Ingresa los elementos del arreglo
printf("Ingrese %d enteros:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Encuentra números únicos y sus frecuencias
for (i = 0; i < n; i++) {
int is_unique = 1;
for (j = 0; j < unique_count; j++) {
if (numbers[i] == unique_numbers[j]) {
is_unique = 0;
break;
}
}
if (is_unique) {
unique_numbers[unique_count] = numbers[i];
// Cuenta la frecuencia de este número único
int count = 0;
for (j = 0; j < n; j++) {
if (numbers[i] == numbers[j]) {
count++;
}
}
frequencies[unique_count] = count;
// Actualiza la frecuencia máxima
if (count > max_frequency) {
max_frequency = count;
}
unique_count++;
}
}
// Imprime información detallada de la moda
printf("\nAnálisis Estadístico:\n");
printf("Números Totales: %d\n", n);
printf("Números Únicos: %d\n", unique_count);
printf("\nDistribución de Frecuencias:\n");
for (i = 0; i < unique_count; i++) {
printf("Número %d: %d vez(es)\n",
unique_numbers[i], frequencies[i]);
}
// Imprime las modas
printf("\nModa(s):\n");
for (i = 0; i < unique_count; i++) {
if (frequencies[i] == max_frequency) {
printf("- %d (aparece %d veces)\n",
unique_numbers[i], frequencies[i]);
}
}
return 0;
}
Compila y ejecuta el programa:
gcc mode_calculation.c -o mode_calculation
./mode_calculation
Salida de ejemplo:
Ingrese el número de elementos (máximo 100): 7
Ingrese 7 enteros:
2 3 4 2 2 5 5
Análisis Estadístico:
Números Totales: 7
Números Únicos: 4
Distribución de Frecuencias:
Número 2: 3 vez(es)
Número 3: 1 vez(es)
Número 4: 1 vez(es)
Número 5: 2 vez(es)
Moda(s):
- 2 (aparece 3 veces)
Mejoras clave en esta versión:
- Maneja múltiples modas si existen.
- Proporciona una descripción estadística completa.
- Identifica números únicos en el conjunto de datos.
- Muestra la distribución de frecuencias.
Resumen
En este laboratorio, aprenderás cómo leer un arreglo de números en C y contar las frecuencias de cada número para determinar la moda, que es el valor más común en el conjunto de datos. Primero, crearás un programa en C que permita la entrada de un conjunto de números y los prepare para el análisis de frecuencias. Luego, modificarás el programa para contar las frecuencias de cada número e identificar la moda. Finalmente, imprimirás la moda en la consola.
Los puntos clave de aprendizaje de los pasos completados son:
- Cómo leer un arreglo de números en C utilizando la función
scanf(). - Cómo imprimir el arreglo ingresado para verificar la entrada.
- Cómo contar las frecuencias de cada número en el arreglo para encontrar el valor más común (moda).



