Mostrando entradas con la etiqueta arreglos unidimesionales. Mostrar todas las entradas
Mostrando entradas con la etiqueta arreglos unidimesionales. Mostrar todas las entradas

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.