En programación un array (muchos lo llaman vector) es una zona de almacenamiento que contiene elementos de un mismo tipo (enteros, boléanos, fechas). En principio todos las arrays son de una dimensión, pero se pueden simular facilmente arrays multidimensionales. Los más fáciles de “ver” o imaginar son los de dos (un tablero de ajedrez) y tres dimensiones (el cubo de Rugby).
Para que sirven los arrays?
Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos se realice de forma aleatoria e impredecible, por ejemplo, cuando tenemos un conjunto de números desordenados o una lista de nombres.
Por el contrario, si los elementos pueden estar ordenados y se va a utilizar acceso secuencial sería más adecuado utilizar otra estructura mejor diseñada para estas situaciones. En lenguajes fuertemente tipados como C# (aunque ya no tanto) los arrays solo pueden tener elementos de un mismo tipo, a diferencia de PHP, Python y otros lenguajes dinámicos. Veamos ahora como podemos trabajar con los arrays en C#.
Declarar un Array
Para declarar un array de una dimensión, solamente debes especificar de qué tipo serán los elementos de array, de esta forma:
<tipo> [] <nombre> = new <tipo> [<tamaño>];
Por ejemplo, si quiero crear un nuevo array de 8 números enteros:
int [] numeros = new int [8];
int es para decir que son enteros lo que voy a almacenar, numeros es el nombre del array y new es el operador que indica al compilador que cree un nuevo array con una capacidad de 8 elementos.
Si quieres establecer los 8 números enteros desde un principio, deberás incluir entre llaves, los elementos separados por coma como en el ejemplo:
int [] a = {6,1,5,6,4,8,6,9,7,4,14,26,14,12,10};
Para declarar un array n-dimensional solo hay que tener en cuenta que a medida que le agreguemos una coma (,) a los corchetes, se crea una nueva dimensión, por lo que si hacemos [,] estamos creando un array bidimensional, si agregamos otra coma ([,,]) sería tridimensional. Veamos un ejemplo:
bool [,] tablero = new bool[8,8]; //Se crea un array bidimensional llamado tablero de 8x8
Acceder a los elementos de un array
Para acceder a un elemento en una posición i solo hay que hacer mi_array[i] si tiene una dimensión, si tiene más de una dimensión, podemos hacer my_array[i,j] (noten que es diferente a C++). Veamos algunos ejemplos:
int [] elementos = new int[]{5,4,3,2,1}; int x = elementos[2]; Console.WriteLine(x); //Se imprime 3
Es importante saber que para referirse al elemento de la posición n del array, hay que escribirlo como my_array[n-1] ya que my_array[0] devuelve el primer elemento del array. Es un poco incómodo, pero con la práctica te acostumbras. Para acceder al último elemento
Algunos ejemplos
Ahora veremos algunos ejemplos, para que se familiaricen con la sintaxis y vean como usarlos en métodos y aplicaciones sencillas.
Ejemplo 1
Hagamos un método o función, que diga si un número entero está o no dentro de un array.
// Declaramos el método que recibe un array de enteros y // devuelve un bool, en caso de encontrar el número en el // array "numeros" devolveremos true; public static bool Pertenece (int numero, int [] array) { // Recorremos todas las posiciones del array desde // 0 hasta "array.Lenght", que nos da la longitud. for(int i=0; i<array.Length; i++) { // Preguntamos si el elemento en la posición i del array es igual al número que buscamos. if(array[i]==numero) // En caso de que encontremos el número devolvemos true. return true; } // Retornamos false si no está el número return false }
Para probar este método podemos escribir algo así:
int [] numeros = {6,1,5,6,4,8,6,9,7,4,14,26}; bool dime= Pertenece(8, numeros); Console.WriteLine(dime);
Esto imprimirá en la consola true, ya que 8 está en el array.
Ejemplo 2
Ahora se trata de un método que recibe un array de numeros enteros y devuelve un numero entero, que será el mayor de los elementos del array.
public static int Mayor(int[]numeros) { // Primero asignamos al entero mayor el primer // elemento del array int mayor = numeros[0]; //Ahora recorremos el array como en el ejemplo 1 for(int i = 0 ; i< numeros.Length ; i++) // Vamos preguntando en cada posicion del array si el elemento que contiene es mayor que la variable "mayor". if(numeros[i] > mayor) // Si se cumple, entonces asignamos a mayor este nuevo elemento. mayor = numeros[i]; // Cuando terminamos de recorrer el array, retornamos la variable mayor. return mayor; }
Podríamos usar este método de la siguiente forma:
int [] numeros = {6,1,5,6,4,8,6,9,7,4,14,26}; int max = Mayor(numeros); Console.WriteLine(max);
Bueno, hasta aquí este breve introducción sobre el manejo de arrays. Si quieres seguir aprendiendo, puedes ver unos cuantos ejecicios resueltos de array en C# que he ido publicando en este mismo blog. Si tienen alguna pregunta en los comentarios.
Compartir:
52 comentarios
Forma parte de nuestra discusión y síguela de cercaQuisiera una ayuda con un problema:
using System;
namespace semana9_array
{
class prueba
{
static int[] nota = new int[5]; //Crea un array de 5
static void Main(string[] args)
{
ingresar();
Mostrar1();
Mostrar2();
Console.ReadKey();
}
static void ingresar() //Clase ingresar
{
for (int i = 0; i < nota.Length; i++)
{
Console.Write("ingrese nota: ");
nota[i] = int.Parse(Console.ReadLine());
}
}
static void Mostrar1() //Clase mostrar
{
for (int i = 0; i = 0; i–)
{
Console.WriteLine(“nota {0}”, nota[i]);
}
}
}
}
Autor: Eduardo | Fecha: Abr 29, 2012.
OK, en donde necesitas ayuda
Autor: Tomy | Fecha: May 2, 2012.