Sunteți pe pagina 1din 18

Arrays y Cadenas

Un arreglo o array (en ingls) es una coleccin de variables estructuradas


referenciadas por medio de un nombre comn.
Otra definicin vlida es que un arreglo es un conjunto de datos que se
almacenan en memoria de manera consecutiva con el mismo nombre y para
diferenciarlos se utiliza un ndice.
Entonces podemos decir que un array es un conjunto finito de valores del
mismo tipo de dato que se almacenan bajo el mismo nombre (variable) en
posiciones consecutivas en memoria.
Indice
Elemento

[0]

[1]

[2]

[3]

..

..

El ndice es un nmero correlativo que indica la posicin de un elemento del


arreglo. Los ndices en C++ van desde la posicin 0 hasta la posicin tamao
del arreglo 1.

Un elemento de un arreglo es un valor particular dentro de la estructura del


arreglo. Para acceder a un elemento del arreglo es necesario indicar la posicin
o ndice dentro del arreglo. Ejemplo:
[0]
[1]
[2]
[3]
:
.

1
3
5
7
:
.

(primer elemento)
(segundo elemento)
(tercer elemento)
(cuarto elemento)

En C++ las cadenas de caracteres son declaradas como arrays de caracteres y


permiten la utilizacin de un cierto nmero de notaciones y de funciones
especiales.
Los arreglos pueden tener una o varias dimensiones.

Array unidimensional

Por ejemplo, la declaracin:


int impar[5];
define el array impar de tipo entero de dimensin 5.
Para llenar o inicializar un array, podemos hacer lo siguiente:
for (i = 0; i<= 4; i++)
cin>>impar[i];
Otra manera de inicializar un array es asignndole los valores iniciales entre
llaves de la siguiente forma:
int impar[5] = {1, 3, 5, 7, 9};
En cualquiera de los casos los elementos que se define son: impar[0], impar[1],
impar[2], impar[3] e impar[4].
Si no se inicializa explcitamente el array no se puede estar seguro del valor
que contienen los elementos del mismo.

Unos vectores que se usan mucho en lenguaje C++, y muchas veces de forma
trasparente para el programador son los arrays de caracteres, tambin
llamados tiras o cadenas de caracteres. Aunque se puede trabajar con ellos
como con otros vectores de otros tipos, su frecuencia ha hecho introducir
algunas normas y operadores para escribir ms cmodamente cdigo con
cadenas de caracteres.
Muchas de estas normas ya se han usado sin mencionarlas en temas
anteriores. La primera que se explicar es la que atiende a los operadores
simple y doble comilla (' y "). Mientras el primero indica un nico carcter (el
valor ASCII del mismo), el segundo implica la construccin de todo un vector o
cadena de caracteres (en ASCII) que adems termina en un valor ASCII
especial: el 0x0. As en el siguiente ejemplo, se inicializa la variable letra
solamente con el ASCII del caracter 'A' (0x41), pero la variable cadena1 se
inicializa con las letras del texto entre doble comillas.
char letra=A';
char cadena1[19]=Arriba Alianza Lima;
Indice
Elemento

[0]
A

[1]
r

[2]
r

[3]
i

[4]
b

[5]
a

[6]

[7]
A

[8]
l

[9]
i

[10]
a

[11]
n

[12]
z

[13]
a

[14]

[15]
L

[16]
i

[17]
m

[18]
a

[19]
0x0

Ejemplo: el siguiente programa carga el arreglo sqrs con los cuadrados de los
nmeros del 1 al 10 y luego los visualiza.

Asignacin entre arreglos


En C++ no se puede asignar un arreglo completo a otro arreglo. Por ejemplo,
este fragmento es incorrecto.
char a1[10], a2[10];
...
a2=a1; // Es incorrecto
Si se desea copiar los valores de todos los elementos de una arreglo a otro se
debe hacer copiando cada elemento por separado. Por ejemplo, el siguiente
programa carga a1 con los nmeros 1 a 10 y despus los copia en a2

Arrays multidimensionales
Los arrays definidos anteriormente son unidimensionales y se caracterizan por
tener un solo ndice. Tambin se conocen como listas de elementos y se
corresponden con el concepto de un vector.
Los arrays multidimensionales son estructuras de un mismo tipo de datos, y de
longitud fija que almacenan datos de forma tabular. Es decir tienen ms de una
dimensin y por tanto utilizan ms de un ndice para acceder a sus elementos.
Los arreglos multidimensionales ms utilizados son los de dos dimensiones
(bidimensionales), conocidos con el nombre de tablas y, se corresponden con el
concepto de matrices.
C++ permite trabajar con arrays de tantas dimensiones como se requieran en
las aplicaciones ( 2, 3, 4 ms dimensiones).
En la teora de matrices, por ejemplo, una matriz de orden mn es un conjunto
rectangular de elementos dispuestos en filas "m" y en columnas "n", siendo m y
n nmeros naturales.

Las matrices se denotan con letras maysculas: A, B, C, ... y los elementos de


las mismas con letras minsculas y subndices que indican el lugar ocupado.
Un elemento genrico que ocupe la fila i y la columna j se escribe i,j. Si el
elemento genrico aparece entre parntesis tambin representa a toda la
matriz: A (i,j).
Una matriz de orden 3x4 se muestra a continuacin, siendo M una matriz de 3
filas y 4 columnas, la representacin grfica de sus posiciones sera la
siguiente:

Para declarar un arreglo bidimensional se procede de forma similar a la


declaracin de un array unidimensional.
tipo_dato identificador [num_filas] [num_columnas];

Se puede acceder a los elementos de un array bidimensional de forma similar a


como se hace para arrays de una dimensin. Hay que poner el nombre y los
ndices (fila y columna) del elemento al que queremos acceder referenciar.

Al igual que los arrays de una dimensin, tenemos varias formas de inicializar
un array bidimesional:

Si un array se declara globalmente, y no se inicializa en dicha declaracin, el


compilador se encarga de inicializarlo automticamente con un valor por
defecto.
Si no declara globalmente, pero se inicializan uno o ms elementos pero no
todos, el compilador inicializa automticamente el resto de elementos con un
valor por defecto.

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