Sunteți pe pagina 1din 5

Vector (informtica)

Vector (informtica)
En programacin, una matriz o vector (llamados en ingls arrays) es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo tipo, los Matriz unidimensional con 10 elementos. elementos de la matriz. Desde el punto de vista lgico una matriz se puede ver como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones). En principio, se puede considerar que todas las matrices son de una dimensin, la dimensin principal, pero los elementos de dicha fila pueden ser a su vez matrices (un proceso que puede ser recursivo), lo que nos permite hablar de la existencia de matrices multidimensionales, aunque las ms fciles de imaginar son los de una, dos y tres dimensiones. Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos se realice de forma aleatoria e impredecible. Por el contrario, si los elementos pueden estar ordenados y se va a utilizar acceso secuencial sera ms adecuado utilizar una lista, ya que esta estructura puede cambiar de tamao fcilmente durante la ejecucin de un programa.

ndices
Todo vector se compone de un determinado nmero de elementos. Cada elemento es referenciado por la posicin que ocupa dentro del vector. Dichas posiciones son llamadas ndice y siempre son correlativos. Existen tres formas de indexar los elementos de una matriz: Indexacin base-cero (0): En este modo el primer elemento del vector ser la componente cero ('0') del mismo, es decir, tendr el ndice '0'. En consecuencia, si el vector tiene 'n' componentes la ltima tendr como ndice el valor 'n-1'. El lenguaje C es un ejemplo tpico que utiliza este modo de indexacin. Indexacin base-uno (1): En esta forma de indexacin, el primer elemento de la matriz tiene el ndice '1' y el ltimo tiene el ndice 'n' (para una matriz de 'n' componentes). Indexacin base-n (n): Este es un modo verstil de indexacin en la que el ndice del primer elemento puede ser elegido libremente, en algunos lenguajes de programacin se permite que los ndices puedan ser negativos e incluso de cualquier tipo escalar (tambin cadenas de caracteres).

Notacin
La representacin de un elemento en un vector se suele hacer mediante el identificador del vector seguido del ndice entre corchetes, parntesis o llaves:

Vector (informtica)

Notacin vector[ndice_1,ndice_2...,ndice_N]

Ejemplos (Java, Lexico, Perl, etc.)

vector[ndice_0][ndice_1]...[ndice_N] (C, C++, PHP, etc.) vector(ndice_1,ndice_2...,ndice_N) (Basic)

Aunque muchas veces en pseudocdigo y en libros de matemtica se representan como letras acompaadas de un subndice numrico que indica la posicin a la que se quiere acceder. Por ejemplo, para un vector "A": (vector unidimensional)

Forma de acceso
La forma de acceder a los elementos de la matriz es directa; esto significa que el elemento deseado es obtenido a partir de su ndice y no hay que ir buscndolo elemento por elemento (en contraposicin, en el caso de una lista, para llegar, por ejemplo, al tercer elemento hay que acceder a los dos anteriores o almacenar un apuntador o puntero que permita acceder de manera rpida a ese elemento). Para trabajar con vectores muchas veces es preciso recorrerlos. Esto se realiza por medio de bucles. El siguiente pseudocdigo muestra un algoritmo tpico para recorrer un vector y aplicar una funcin ' ' a cada una de las componentes del vector: i = 0 mientras (i < longitud) #Se realiza alguna operacin con el vector en la i-sima posicin f(v[i]) i=i+1 fin_mientras

Vectores dinmicos y estticos


Lo habitual es que un vector tenga una cantidad fija de memoria asignada, aunque dependiendo del tipo de vector y del lenguaje de programacin un vector podra tener una cantidad variable de datos. En este caso, se les denomina vectores dinmicos, en oposicin, a los vectores con una cantidad fija de memoria asignada se los denomina vectores estticos. El uso de vectores dinmicos requiere realizar una apropiada gestin de memoria dinmica. Un uso incorrecto de los vectores dinmicos, o mejor dicho, una mala gestin de la memoria dinmica, puede conducir a una fuga de memoria. Al utilizar vectores dinmicos siempre habr que liberar la memoria utilizada cuando sta ya no se vaya a seguir utilizando. Lenguajes ms modernos y de ms alto nivel, cuentan con un mecanismo denominado recolector de basura (como es el caso de Java) que permiten que el programa decida si debe liberar el espacio basndose en si se va a utilizar en el futuro o no un determinado objeto.

Ejemplos en C
Declaracin en C/C++ de un vector esttico. main() { int i, v[5];

// v[5] es un vector de 5 componentes

Vector (informtica) for(i=0; i<5; i++) { v[i] = 2 * i; // Asignamos un valor printf("%d\n", v[i]); printf("\n"); // Deja un espacio en blaco } } Declaracin en C++ de un vector de STL: #include <vector> vector<int> v; // Si no se especifica el tamao inicial es 0 for(int i=0 ;i<5 ;i++) { v.push_back(2*i); // inserta un elemento al final del vector } El ejemplo anterior est hecho para el lenguaje C++. En C, para crear vectores dinmicos se tendran que utilizar las instrucciones malloc [1] y realloc [2] para reservar memoria de forma dinmica (ver biblioteca stdlib.h), y la funcin free [3] para liberar la memoria utilizada. Resultado:
0 1 2 3 4 0 2 4 6 8

El resultado de los dos ejemplos es el mismo vector

Vectores multidimensionales
En Basic, Java y otros lenguajes es posible declarar matrices multidimensionales, entendindolas como un vector de vectores. En dichos casos en nmero de elementos del vector es el producto resultante de cada dimensin. Por ejemplo el vector v(4,1) tiene 10 elementos se calcula del siguiente modo: (0-4) * (0-1). Los elementos de la primera dimensin del vector contiene 5 elementos que van del '0' al '4' y la 2 dimensin tiene 2 elementos que van desde '0' a '1'. Los elementos seran accedidos del siguiente modo: elemento 1: (0,0) elemento 2: (0,1) elemento 3: (1,0) ... elemento 8: (3,1) elemento 9: (4,0) elemento 10: (4,1)

Vector (informtica)

Referencias
[1] http:/ / c. conclase. net/ librerias/ funcion. php?fun=malloc [2] http:/ / c. conclase. net/ librerias/ funcion. php?fun=realloc [3] http:/ / c. conclase. net/ librerias/ funcion. php?fun=free

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Vector (informtica) Fuente: http://es.wikipedia.org/w/index.php?oldid=60451574 Contribuyentes: 2rombos, A. Guizar, Baiji, Biasoli, Cholga, Clokr, Crescent Moon, Diegusjaimes, Dodo, Dromero, Especiales, Fran89, GermanX, Gmarinp, Gtz, Helmy oved, Hprmedina, JMCC1, Jesuja, Jkbw, Jorgelrm, Juancri, Kandorf, LeCire, LeinaD natipaC, Maldoror, Matdrodes, Moriel, Pino, Pke93, Poco a poco, Rosarinagazo, Rrupo, Sauron, Savh, Sergio Andres Segovia, Spa karmona, SuperBraulio13, Tano4595, Toad32767, Tomatejc, Veon, Yago AB, 135 ediciones annimas

Fuentes de imagen, Licencias y contribuyentes


Archivo:Array1.svg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Array1.svg Licencia: Public Domain Contribuyentes: User:Jarkko Piiroinen

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/

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