You are on page 1of 5

Indices de un array

Los ndices son nmeros que se utilizan para identificar a cada uno de los componentes de
un array. A modo de ejemplo, podemos pensar que los ndices son como los nmeros de
habitaciones de un hotel, es decir, para poder dirigirnos a un hotel especfico es necesario
saber el nombre del mismo, luego, si queremos llegar a una habitacin especfica de dicho
hotel necesitaremos, adems del nombre del hotel, el nmero de habitacin deseado.

Dimensiones de un array
De acuerdo a la forma en que se construye o declara un array, ste puede ser clasificado
como: unidimensional, bidimensional y multidimensional. Los arrays que se emplean con
mucha ms frecuencia son los estructurados a manera de vector ( array unidimensional ) y
los estructurados a manera de matriz ( array bidimensional ), as, aunque en C++ se pueden
crear estructuras multidimensionales, en este captulo solo trataremos con vectores y
matrices.
Array unidimensional
Una array uni-dimensional es aquel en donde los componentes son accesibles por medio de
uno y solamente un ndice que apunte al componente requerido. Los arrays de este tipo son
conocidos tambin con el nombre de vectores. Conceptualmente, podemos pensar en un array
unidimensional como una lista compuesta de datos, donde para referirnos a uno de ellos
emplearemos un nmero para indicar la posicin del mismo dentro de la lista. Por ejemplo,
consideremos el caso de la tabla o array VentaSemanal, la cual est pensada para registrar
las ventas de cada uno de los das de la semana. De manera conceptual podemos ver el array
como se muestra a continuacin:
Nota: en C++ los arrays estn basados en 0 ( cero ), es decir, el primer elemento de un array
se indexa mediante el 0, y el ndice para el ltimo de los elementos es igual al nmero de
componentes menos uno.
array: VentaSemanal
+------+
| dato | <-- componente 0, ( fila 0 )
|------|
| dato | <-- componente 1, ( fila 1 )
|------|
| dato | ...

|------|
| dato |
|------|
| dato |
|------|
| dato |
|------|
| dato |
|------|

...
...
...
<-- componente 6, ( fila 6 )

Array bidimensional
Un array bi-dimensional es aquel en donde los componentes son accesibles por medio de una
pareja de ndices que apunten a la fila y a la columna del componente requerido. Los arrays
de este tipo son conocidos tambin con el nombre de matrices. Conceptualmente, podemos
pensar en un array bidimensional como en una lista compuesta de filas y columnas, en donde
para referirnos a una de ellas emplearemos un nmero para indicar la posicin de fila y otro
nmero para indicar la posicin de la columna del componente deseado. Por ejemplo,
consideremos el caso de la tabla o array VentaSemanaQ, la cual est pensada para registrar
las ventas de cada uno de los das de la semana por cuatro semanas, o sea, una tabla de 7 x
4 elementos. De manera conceptual podemos ver el array como se muestra a continuacin:
array: VentaSemanaQ
C O L U M N A S

F
I
L

+--- componente ( 0, 0 )
|
+------+------+------+------+
| dato | dato | dato | dato |
|------|------|------|------|
| dato | dato | dato | dato |
|------|------|------|------|
| dato | dato | dato | dato |
|------|------|------|------|
| dato | dato | dato | dato |

A
S

|------|------|------|------|
| dato | dato | dato | dato |
|------|------|------|------|
| dato | dato | dato | dato |
|------|------|------|------|
| dato | dato | dato | dato |
+------+------+------+------+
|
+---- componente ( 6, 3 )

Declaracin de arrays en C, C++


En C, C++ para declarar un array se emplea la sintaxis:
tipo identificador [tamao]

= { lista de inicializacin }

donde,

tipo se refiere al tipo de datos que contendr el array. El tipo puede ser cualquiera de los
tipos estndar (char, int, float, etc.) o un tipo definido por el usuario. Es ms, el tipo del
array puede ser de una estructura creada con: struct, union y class.

identificador se refiere al nombre que le daremos al array.

tamao es opcional e indica el nmero de elementos que contendr el array. Si un array


se declara sin tamao, el mismo no podr contener elemento alguno a menos que en la
declaracin se emplee una lista de inicializacin.

lista de inicializacin es opcional y se usa para establecer valores para cada uno de los
componentes del array. Si el array es declarado con un tamao especfico, el nmero de
valores inicializados no podr ser mayor a dicho tamao.

Ejemplos:
int intA[5];
long longA[5] = { 1, 2, 3, 4, 5 };
char charA[3] = { 'a', 'b', 'c' };

Cadenas de caracteres
En C, C++ las cadenas de caracteres no son ms que arrays de caracteres, salvo que a este
tipo de arrays el compilador les da un tratamiento especial. Usted puede manipular las
cadenas de caracteres de la misma manera en que manipula cualquier otro tipo de array, sin
embargo, es preferible hacer uso de una librera estndar especialmente escrita para
manipulacion de cadenas de caracteres, me refiero a la librera <string.h> y que viene
incluida con todo compilador de C, C++.
Para comenzar y antes de ver algunas de las funciones de la mencionada librera, tenemos los
siguientes ejemplos:
1. char
2. char

nombre[] = "Oscar";
nombre2[] = { 'O', 's', 'c', 'a', 'r', '\0' };

En el ejemplo 1 se est declarando la variable nombre como una cadena de caracteres y


cuyo contenido inicial es "Oscar".

En el ejemplo 2 se est declarando la variable nombre2 como una cadena de caracteres


y cuyo contenido inicial es { 'O', 's', 'c', 'a', 'r', '\0' };.

En ambos casos el resultado es el mismo, es decir, al final se obtiene la misma cadena, pero
usted debe poner atencin al hecho de que toda cadena de caracteres en C, C++ debe terminar
con el carcter NULL, que normalmente es igual a cero y se puede escribir como '\0'. Ahora
bien, cuando usted usa la sintaxis mostrada en el ejemplo 1 no tiene que preocuparse por
agregar el caracter NULL, ya que esto lo hace el compilador automticamente.

Arrays en C++
As como C++ da aternativas elegantes para la manipulacin de cadenas de caracteres,
tambin da el soporte para la manipulacon de arrays dinmicos. Este tema ser ampliado en
el captulo Libreria de Plantillas Estndar STL, sin embargo para tener una idea de lo que
vendr mostraremos aqu un ejemplo sencillo en donde se usar la clase plantilla vector.
// Ejemplo: demostracin de la clase vector
// Compilado y ejecutado con exito en Bloodshed Dev-C++
#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char *argv[])
{
// creacin de un vector de enteros
vector<int> v;
// metiendo datos en el vector
for (int x = 500; x<1000; x+=50)
v.push_back(x);
// desplegando los datos del vector
for (int x = 0; x < v.size(); x++)
cout << "v[" << x << "] = " << v[x] << endl;
system("PAUSE");
return EXIT_SUCCESS;
}

You might also like