Arreglos - stefano-sosac/arquitectura-de-computadoras GitHub Wiki
Arreglos de una dimensión
Usualmente, los programas utilizan datos del mismo tipo. Cuando la cantidad de variables que almacenan los datos es extensa, esta información se suele almacenar en una única representación que permite indexación para determinar el elemento de interés llamado arreglo. En el siguiente ejemplo, se muestra la declaración de un arreglo con un tamaño de 5 elementos de tipo entero (32 bits):
int arreglo[5]
Cuando ya se conoce los valores iniciales de un arreglo, la inicialización se realiza directamente colocando los elementos del arreglo entre llaves. En el siguiente ejemplo se observa esta declaración para un arreglo que contiene los números 100, 200, 300, 400 y 500, los cuales serán del tipo int:
int arreglo[5] = {100,200,300,400,500};
Es posible acceder o asignar cualquier elemento del arreglo a través de indexación. En el caso de C, el primer elemento está indexado en 0.
int arreglo[10];
arreglo[0] = 50; // Asigna el valor 50 al primer elemento del arreglo
int valor = arreglo[0]; // Lee el valor del primer elemento
La utilidad de un arreglo radica en que es posible acceder a todos los elementos de una manera sencilla. Por ejemplo, es posible realizar la impresión de todos los elementos del arreglo a través de un ciclo iterativo:
int arreglo[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
printf("%d\n", arreglo[i]);
}
Ejercicios
A continuación, se le invita a resolver la siguiente lista de ejercicios para un manejo apropiado de arreglos.
Ejercicio 1
Se pidió a cien estudiantes que calificaran la calidad de la comida en la cafetería en una escala del 0 al 4 (0 significa horrible y 4 significa excelente). Coloque las respuestas en un arreglo de enteros y muestre los resultados de la encuesta.
Ejemplo:
En este ejemplo se asume que solo fueron encuestados veinte alumnos. Si nuestro arreglo de entrada dispusiera de los siguientes resultados:
{0, 2, 4, 4, 3, 4, 2, 0, 3, 0, 4, 3, 3, 3, 2, 3, 3, 2, 2, 4}
Su programa debería imprimir lo siguiente:
Calificación | Cantidad |
---|---|
0 | 3 |
1 | 0 |
2 | 5 |
3 | 7 |
4 | 5 |
No es necesario que se muestre como una tabla, con tal que esté bien tabulado es válido.
Ejercicio 2
Asuma que tiene un arreglo de entrada con valores ordenados que empiezan en 0 y terminan con el valor anterior al tamaño del arreglo. El programa debe desordenar los valores del arreglo de forma aleatoria.
Ejemplo:
Para un arreglo de 10 elemento:
Entrada: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Salida: {9, 1, 5, 6, 0, 8, 2, 7, 4, 3}
Ejercicio 3
Implemente un programa que simule el lanzamiento de un dado una cierta cantidad de veces, la cual será ingresada por línea de comandos. Al final el programa debe mostrar un reporte indicando cuantas veces han salida cada una de las caras.
Ejemplo:
Si el dado es lanzado 600 veces, debería haber un reporte similar al siguiente:
Cara | Cantidad |
---|---|
1 | 102 |
2 | 95 |
3 | 105 |
4 | 90 |
5 | 110 |
6 | 98 |
A manera de ejercicio, intente lanzar el dado 6000, 60000 y 600000 veces.
Ejercicio 4
Implementar un programa que realice un reporte estadístico de un arreglo. El arreglo debe ser de tamaño variable, cuyo valor será ingresado por línea de comandos. Adicionalmente, los valores del arreglo deben ser enteros aleatorios que varían entre 0 y 9.
Por ejemplo, para el siguiente arreglo:
{9, 5, 7, 2, 4, 3, 4, 6, 7, 3, 2, 8, 9, 8, 5, 1, 9, 4, 6, 3}
El reporte sería el siguiente:
media: 5.25 mediana: 5.0 moda: 9