Sunteți pe pagina 1din 4

Arreglos Unidimensionales

Un arreglo unidimensional es un tipo de datos estructurado que est formado por una coleccin finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales. Los datos que se guarden en los arreglos todos deben ser del mismo tipo. El tipo de acceso a los arreglos unidimensionales es el acceso directo, es decir, podemos acceder a cualquier elemento del arreglo sin tener que consultar a elementos anteriores o posteriores, esto mediante el uso de un ndice para cada elemento del arreglo que nos da su posicin relativa. Para implementar arreglos unidimensionales se debe reservar espacio en memoria. Los arreglos nos permiten hacer un conjunto de operaciones para manipular los datos guardados en ellos, estas operaciones son: ordenar, buscar, insertar, eliminar, modificar entre otras. A los arreglos unidimensionales se les llama vectores, se puede decir que son un grupo de variables que se relacionan por un nombre en comn, un arreglo consta de una posicin de memoria contigua,es decir un orden de menor a mayor, as podemos afirmar que la mas baja corresponde al primero y la mayor al ultimo, para acceder a una seccin de un arreglo en especifico se utiliza el indice, a continuacin mostramos un ejemplo: aplicado en c++ int can[9] //un vector llamado can con diez de tamao el vector o arreglo unidimensional llamado can(cantidad) tiene cantidad diez porque se inicia en 0 y es tomado en cuentaes decir un arreglo con diez elementos enteros de as desde can[0]-can[9] La forma por la cual pueden ser accesados es la siguiente:*en este caso aportaremos una cantidad a un elemento de la lista can ca[5]= 15 Los arreglos o arrays corresponden a la Estructura de Datos estticas: son aquellas en las que el espacio ocupado en memoria se define en tiempo de compilacin y no puede ser modificado durante la ejecucin del programa.

Arreglos bidimensionales (matrices)


Es un arreglo de dos dimensiones. Son estructuras de datos que agrupan muchos datos del mismo tipo, en donde cada elemento se puede trabajar individualmente y se puede referenciar con un mismo nombre. Se usan para representar datos que pueden verse como una tabla con filas y columnas.

Para referenciar un elemento de la matriz, debe darse un nombre de la matriz y el ndice de la fila y de la columna que el elemento ocupa en dicha matriz. Es importante que los ndices de las matrices tanto de las filas como de las columnas empiezan en 0 y terminan en tamao fila-1 y tamao columna-1 respectivamente. Este tipo de arreglos al igual que los anteriores es un tipo de dato estructurado, finito ordenado y homogneo. El acceso a ellos tambin es en forma directa por medio de un par de ndices. Los arreglos bidimensionales se usan para representar datos que pueden verse como una tabla con filas y columnas. La primera dimensin del arreglo representa las columnas, cada elemento contiene un valor y cada dimensin representa una relacin La representacin en memoria se realiza de dos formas: almacenamiento por columnas o por renglones.

Puntero
Un puntero o apuntador es una variable que referencia una regin de memoria; en otras palabras es una variable cuyo valor es una direccin de memoria. Si se tiene una variable ' p ' de tipo puntero que contiene una direccin de memoria en la que se encuentra almacenado un valor ' v ' se dice que ' p ' apunta a ' v '. El programador utilizar punteros para guardar datos en memoria en muchas ocasiones. Trabajar con punteros implica la no manipulacin de los datos en s, sino manejar las direcciones de memoria en la cuales estos residen. Los punteros son de amplia utilizacin en programacin y muchos lenguajes permiten la manipulacin directa o indirecta de los mismos. La razn de ser principal de los punteros reside en manejar datos alojados en la zona de memoria dinmica o heap (aunque tambin se pueden manipular objetos en la zona esttica), bien sean datos elementales, estructuras (struct en C) u objetos pertenecientes a una clase (en lenguajes Orientados a Objetos). Gracias a esta propiedad, los punteros permiten modelar un grafo, en donde los elementos de ste son los datos residentes en memoria y las relaciones entre los elementos son los propios apuntadores.

Relacin arreglos y punteros


Un Apuntador: es una variable que contiene una direccin de memoria, la cual corresponder a un dato o a una variable que contiene el dato. Los apuntadores tambin deben de seguir las mismas reglas que se aplican a las dems variables, deben tener nombre nicos y deben de declararse antes de usarse. Cada variable que se utiliza en una aplicacin ocupa una o varias posiciones de memoria Estas posiciones de memoria se accesan por medio de una direccin.

Arreglos: Es una serie de datos del mismo tipo, tambin conocidos como vectores o rangos. Una arreglo est constituido por varias posiciones de memoria de igual tamao consecutivas que tienen el mismo tipo de variable y se accesan usando el mismo nombre seguido de un subndice entre corchetes. La cantidad total de espacio que se usa por un arreglo depende de 2 cosas: El nmero de elementos en el arreglo y El tamao del arreglo.

Existe una estrecha relacin entre punteros y arreglos. El nombre de un arreglo es en s mismo un apuntador al primer elemento del arreglo. Veamos esto: int Arreglo[5] = {1}; int *ptrEntero; La primera lnea es la declaracin de un arreglo de 5 elementos enteros inicializados en 1. Arreglo es en s mismo un apuntador al elemento Arreglo[0] (el primero del arreglo), esto quiere decir que Arreglo tiene como contenido la direccin del primer elemento osea &Arreglo[0] La segunda lnea es la declaracin de un puntero que apunta a un valor entero. ptrEntero = Arreglo; Hecha esta asignacin ptrEntero pasa a ser lo mismo que arreglo por lo que podramos, utilizar ndices al igual que lo haramos con el arreglo : for (int i = 0 ; i < 5 ; i++) ptrEntero[i]++; // incrementamos todos los elementos del arreglo.

La asignacin ptrEntero = Arreglo, es equivalente a ptrEntero = &Arreglo[0] ya que le estamos asignando a ptrEntero la direccin del primer elemento del arreglo.

Ac el cdigo de un ejemplo:

#include <iostream> using std::cout; using std::endl; int main () { int Arreglo[5];//Arreglo elementos elementos enteros for (int i = 0; i < 5; i++) Arreglo[i]=i + 1;//asignamos 1,2,3...5 int *ptrEntero;//Declaracion puntero a un entero cout << "Arreglo[2] = " << Arreglo[2]<< endl; ptrEntero = Arreglo; cout << "Asigno ptrEntero = Arreglo" << endl; cout << "ptrEntero[2] = " << ptrEntero[2] << endl; ptrEntero = &Arreglo[0];//equivale a ptrEntero = Arreglo cout << "Asigno ptrEntero = &Arreglo[0]" << endl; cout << "ptrEntero[2] = " << ptrEntero[2] << endl; cout << endl << "Mostramos el arreglo por sus dos nombres: " << endl; for (int i = 0; i < 5; i++) cout << "ptrEntero["<<i<<"] = "<<ptrEntero[i] << " == " << "Arreglo["<<i<<"] = " << Arreglo[i] << endl; return 0; }

S-ar putea să vă placă și