viernes, 23 de octubre de 2015

Arreglos Unidimensionales

 

      


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