Вы находитесь на странице: 1из 5

3.

Arrays, estructuras y cadenas de texto


3.1 Conceptos Bsicos:
Array: Una tabla, vector, matriz o array es un conjunto de elementos, todos los cuales
son del mismo tipo. Todos estos elementos tendrn el mismo nombre, y ocuparn un
espacio contiguo en la memoria.
Por ejemplo, si queremos definir un grupo de nmeros enteros, el tipo de datos que
usaremos para declararlo ser "int[]".
Si sabemos desde el principio cuantos datos tenemos (por ejemplo 4), les reservaremos
espacio con "= new int[4]", as
int[] ejemplo = new int[4];
Podemos acceder a cada uno de los valores individuales indicando su nombre (ejemplo)
y el nmero de elemento que nos interesa, pero con una precaucin: se empieza a
numerar desde 0, as que en el caso anterior tendramos 4 elementos, que seran
ejemplo[0], ejemplo[1], ejemplo[2], ejemplo[3].
Ejemplo:
using System;
public class EjemploArray01
{
public static void Main()
{
int[] numero = new int[5];
int suma;
numero[0] = 200;
numero[1] = 150;
numero[2] = 100;
numero[3] = -50;
numero[4] = 300;
suma = numero[0] + numero[1] + numero[2] + numero[3] + numero[4];
System.Console.WriteLine("Su suma es:", suma);
}
}

Recorriendo los elementos de una tabla


Es de esperar que exista una forma ms cmoda de acceder a varios elementos de un array, sin
tener siempre que repetirlos todos, como hemos hecho en:
suma = numero[0] + numero[1] + numero[2] + numero[3] + numero[4];

El "truco" consistir en emplear cualquiera de las estructuras repetitivas que ya hemos visto
(while, do..while, for), por ejemplo as:
suma = 0; /* Valor inicial de la suma */
for (i=0; i<=4; i++) /* Y hallamos la suma repetitiva */
suma += numero[i];

En este caso, que solo sumamos 5 nmeros, pero si trabajsemos con 100, 500
o 1000 nmeros, la ganancia en comodidad y rapidez es notoria.
Datos repetitivos introducidos por el usuario

Si queremos que sea el usuario el que introduzca datos a un array, usaramos otra
estructura repetitiva ("for", por ejemplo) para pedrselos:
Ejemplo:
using System;
public class Ejemplo36
{
public static void Main()
{
int[] numero = new int[5]; /* Un array de 5 nmeros enteros */
int suma; /* Un entero que ser la suma */
int i; /* Para recorrer los elementos */
for (i=0; i<=4; i++) /* Pedimos los datos */
{
Console.Write("Introduce el dato numero: ", i+1);
numero[i] = Convert.ToInt32(Console.ReadLine());
}
suma = 0; /* Valor inicial de la suma */
for (i=0; i<=4; i++) /* Y hallamos la suma repetitiva */
suma += numero[i];
Console.WriteLine("Su suma es:", suma);
}
}

3.2 Tablas Bidimensionales


Podemos declarar tablas de dos o ms dimensiones. Por ejemplo, si queremos guardar
datos de dos grupos de alumnos, cada uno de los cuales tiene 20 alumnos, podremos
hacerlo as:
int datosAlumnos[2,20]
donde:
datosAlumnos[0,i] son los del primer grupo, y

datosAlumnos[1,i] son los del segundo grupo.


Ejemplo:
using System;
public class Ejemplo37
{
public static void Main()
{
int[,] notas1 = new int[2,2];
// 2 bloques de 2 datos
notas1[0,0] = 1;
notas1[0,1] = 2;
notas1[1,0] = 3;
notas1[1,1] = 4;
int[,] notas2 =
// 2 bloques de 10 datos
{
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
{11, 12, 13, 14, 15, 16, 17, 18, 19, 20}
};
Console.WriteLine("La nota1 del segundo alumno del grupo 1 es:",
notas1[0,1]);
Console.WriteLine("La nota2 del tercer alumno del grupo 1 es:",
notas2[0,2]);
}
}

Este tipo de tablas de varias dimensiones son las que se usan tambin para guardar
matrices, cuando se trata de resolver problemas matemticos ms complejos que los
que hemos visto hasta ahora.
3.3 Arrays Multidimensionales
Son aquellos que constan de dos o ms dimensiones, es decir, que cada elemento del
array viene definido por dos o ms ndices.
Declaracin de un array multidimensional:
tipo[,,] variable;

// array tridimensional

Ejemplo:
Array bidimensional que se utiliza para almacenar una lista de alumnos por aula, esto
es, tenemos dos aulas (el primer ndice del array sera 3) y cuatro alumnos en cada una
(el segundo ndice sera 4).
string[,] alumnos = new string[3,4];

El almacenamiento de los datos sera as:


alumnos[0,0]=Mario;

alumnos[0,1]=Juan;
alumnos[0,2]=Rosa;
alumnos[0,3]=Ana;
alumnos[1,0]=Luis;
alumnos[1,1]=Jorge;
alumnos[1,2]=Maria;
alumnos[1,3]=Laura;
alumnos[2,0]=Manuel;
alumnos[2,1]=Victor;
alumnos[2,2]=Liliana;
alumnos[2,3]=Carmen;

Esto sera como almacenar los datos es esta tabla:


NOMBRE 0
NOMBRE 1
NOMBRE 2
NOMBRE 3

AULA 0
Mario
Juan
Rosa
Ana

AULA 1
Luis
Jorge
Mara
Laura

AULA 3
Manuel
Vctor
Liliana
Carmen

Nota: Las tablas bidimensionales se incluyen dentro de este grupo

3.4 Arrays de Arrays


La otra forma de tener arrays multidimensionales son los "arrays de arrays", que como
veremos en este ejemplo, un arreglo pueden tener elementos (arreglos) de distinto
tamao. En ese caso nos puede interesar saber su longitud, para lo que podemos usar
"a.Length":
Ejemplo:
using System;
public class Ejemplo38
{
public static void Main()

{
int[][] notas; // Array de dos dimensiones
notas = new int[3][]; // Seran 3 bloques de datos
notas[0] = new int[10]; // 10 notas en un grupo
notas[1] = new int[15]; // 15 notas en otro grupo
notas[2] = new int[12]; // 12 notas en el ultimo
// Damos valores de ejemplo
for (int i=0;i<notas.Length;i++)
{
for (int j=0;j<notas[i].Length;j++)
{
notas[i][j] = i + j;
}
}
// Y mostramos esos valores
for (int i=0;i<notas.Length;i++)
{
for (int j=0;j<notas[i].Length;j++)
{
System.Console.Write(notas[i][j]);
}
Console.WriteLine();
}
}
}

La salida de este programa seria:


0123456789
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 3 4 5 6 7 8 9 10 11 12 13

Вам также может понравиться