Está en la página 1de 4

Arrays y cadenas de texto

Los arrays son usados extensamente por los programadores para contener listas de datos en
la memoria, por ejemplo, los datos almacenados en un disco suelen leerse y ponerse dentro
de un array con el objetivo de facilitar la manipulacin de dichos datos, ya que los datos en
memoria pueden ser modificados, clasificados, marcados para su eliminacion, etc. para
luego ser reescritos al disco. Otro ejemplo podra ser el de un men de opciones que se
desplegarn dentro de una ventana para que el usuario pueda elegir una de stas, en tales
casos y cuando las opciones son numerosas, solamente se ponen unas cuantas de ellas
dentro de la ventana pero se le da al usuario la oportunidad de poder subir y bajar a su
antojo para ver el resto de opciones que, aunque no se vean en la ventana, forman parte del
men o array de opciones.

Array:
Un array es un conjunto de datos del mismo tipo ordenados en forman lneal uno despus
de otro. Los componentes de un array se han de referenciar por medio del nombre del array
y un ndice de desplazamiento para indicar el componente deseado.

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 dirijirnos 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 devector ( 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 bidimensional
Una 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 dematrices. 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 de7 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
A
S

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

Si en el array VentaSemanaQ queremos que el elemento de la fila 4, columna 3 ( por


ejemplo ) contenga el valor de 5000 lo podemos lograr con la
instruccin:VentaSemanaQ[4][3] = 5000; y el estado del array sera:
array: VentaSemanaQ
+--- componente ( 0, 0 )
|
+------+------+------+------+
| dato | dato | dato | dato |
|------|------|------|------|

| dato | dato | dato | dato |


|------|------|------|------|
| dato | dato | dato | dato |
|------|------|------|------|
| dato | dato | dato | dato |
|------|------|------|------|
| dato | dato | dato | 5000 | <-- componente ( 4, 3 )
|------|------|------|------|
| 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' };

Iteraciones dentro de un array (matriz)


Con el fin de leer o escribir sobre cada uno de los componentes de una matriz se deben
crear dos ciclos de iteracin. As, para poner un ejemplo reconsideremos el caso de la
tabla VentaSemanaQ (vista en una seccin anterior), y que dicho sea de paso es un array
de 4 x 4 elementos de tipo double. Luego, vamos a mostrar como ejemplo un programa
completo en el cual se declara el array mencionado con valores inicializados, que sern

mostrados en pantalla y al final la suma de estos. Observe que en este caso se utilizan dos
variables, una para iterar sobre las filas y otra para iterar sobre las columnas de la matriz.
#include <stdio.h>
#include <stdlib.h>
//hola
#define FILAS 7
#define COLS 4
int main()
{
float VentaSemanaQ[FILAS][COLS] = {
123.50, 234.60, 345.45, 321.40,
345.00, 456.65, 123.50, 234.60,
345.45, 321.40, 345.00, 456.65,
123.50, 234.60, 345.45, 321.40,
345.00, 456.65, 123.50, 234.60,
345.45, 321.40, 345.00, 456.65,
0.0, 0.0, 0.0, 0.0 };
float totales[COLS] = { 0.0, 0.0, 0.0, 0.0 };
float grantotal = 0;
int f, c, t = 0 ; /* indices para filas, columnas y totales */
puts("Ventas de cuatro semanas");
puts("------------------------");
for (f=0; f<FILAS; f++) {
for (c=0; c<COLS; c++) {
totales[c] += VentaSemanaQ[f][c];
printf("%8.2f ", VentaSemanaQ[f][c] );
}
puts("");
}
puts("--------------------------------------");
for (t=0; t<COLS; t++) {
printf("%8.2f ", totales[t] );
grantotal += totales[t];
}
printf("\n\nGran total: %10.2f\n", grantotal);
system("pause");
return 0;
}
Salida del programa:
Ventas de cuatro semanas
-----------------------123.50
234.60
345.45
321.40
345.00
456.65
123.50
234.60
345.45
321.40
345.00
456.65
123.50
234.60
345.45
321.40
345.00
456.65
123.50
234.60
345.45
321.40
345.00
456.65
0.00
0.00
0.00
0.00
-------------------------------------1627.90
2025.30
1627.90
2025.30
Gran total:
7306.40

También podría gustarte