Un arreglo se define como una colección finita, homogénea y ordenada de elementos.
Finita: todo arreglo tiene un límite, es decir se debe determinar
cuál será el número máximo de elementos que podrán formar parte del arreglo.
Homogéneas: todos los elementos de un arreglo son del
mismo tipo (todos enteros, todos reales, etc., pero nunca una combinación de
distintos tipos).
Ordenadas: se puede determinar cuál es el primer
elemento, el segundo el tercero,… y el n-esimo elemento.
Un arreglo puede representarse gráficamente como se
muestra en la siguiente imagen:
Un arreglo
tiene la característica de que puede almacenar a N elementos del mismo tipo y además
permite el acceso a cada uno de esos elementos. Así, se distinguen dos partes
en los arreglos.
- Los componentes.
- Los índices.
Los componentes hacen referencia a los elementos que componen o forman el arreglo. Es decir,
son los valores que se almacenan en cada una de sus casillas.
Los índices, por otra parte, son los que permiten
accesar a los componentes del arreglo en forma individual. Para hacer
referencia a un componente de un arreglo se necesita:
- El nombre del arreglo.
- El índice del elemento.
En la
siguiente imagen se muestra la representación de un arreglo y se indican sus
componentes y su índice:
Como los
arreglos son datos estructurados, muchas de estas operaciones no pueden llevarse
a cabo de manera global, sino que deben trabajar sobre cada elemento.
A continuación cada
una de estas operaciones.
Lectura/Escritura
- Lectura: Este proceso consiste en leer un dato de un arreglo y asignar un valor a cada uno de sus componentes. La lectura se realiza de la siguiente manera: para i desde 1 hasta N haz x<--arreglo[i]
- Escritura: Consiste en asignarle un valor a cada elemento del arreglo. La escritura se realiza de la siguiente manera: para i desde 1 hasta N haz arreglo[i] <x.
Asignación
En general no
es posible asignar directamente un valor a todo arreglo, sino que se debe
asignar el valor deseado a cada componente.
Actualización
En un arreglo
se pueden insertar, eliminar y/o modificar elementos. Para llevar a cabo estas
operaciones eficientemente se debe tener en
cuenta si el arreglo esta ordenado o desordenado.
Es decir, si sus
componentes respetan algún orden entre si.
Arreglos desordenados:
- Inserción: para insertar un elemento Y en un arreglo A desordenado debe verificarse que exista espacio. Si se cumple esta condición, entonces se asignara a la posición N+1 el nuevo elemento.
- Eliminación: para eliminar un elemento X de un arreglo A desordenado debe verificarse que el arreglo no esté vacío y que X se encuentre en el arreglo.
Si
se cumplen estas condiciones entonces se procederá a recorrer todos los elementos que están a su
derecha una posición a la izquierda, decrementando finalmente el número de
componentes del arreglo.
- Modificación: para modificar un elemento X por un elemento Y, de un arreglo A que se encuentra desordenado debe verificarse que el arreglo no esté vacío y que X se encuentre en el arreglo.
Si
se cumplen estas tres condiciones entonces se puede proceder a la actualización.
Igualdad: La única forma para poder entonces verificar la
igualdad de dos arreglos es realizando una función lógica en la que mediante
una estructura interactiva se comparen todos y cada uno de los elementos de
ambos arreglos que tengan el mismo valor de índice.
- Recorrido: Se puede acceder a los elementos de un vector para introducir datos (leer) en él, para visualizar su contenido (escribir), para verificar su igualdad o para realizar un tratamiento sobre sus componentes. A la operación de efectuar una acción general sobre todos los elementos de un vector se la denomina recorrido del vector.
Ejemplos.
Ejemplo 1
Programa en el que el usuario ingresa 10 alturas, guardadas en un vector; calcule la suma y el promedio.
#include <stdio.h>
#include <windows.h>
main()
{
int altura[10],suma=0,promedio,i,c;
printf("*** Bienvenido al Programa ***\n");
printf(" introduce 10 alturas\n");
for(i=1;i<=10;i++)
{
scanf("%d",&altura[i]);
suma=suma+altura[i];
}
promedio=suma/10;
printf("la suma es %d",suma);
printf(" el promedio es %d\n",promedio);
system("pause");
}
Ejemplo 2
Programa que guarda 15 números ingresados por el usuario e indica cuantos números son positivos, negativos y nulos.
No hay comentarios:
Publicar un comentario