Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arreglos Estáticos
Definición de Arreglos
En programación se le denomina arreglo a una serie de elementos (variables,
por ejemplo) que tienen un mismo nombre y son del mismo tipo. Como
comparten el mismo nombre, para leer o escribir elementos individuales de un
arreglo se utiliza un indicador adicional llamado "índice" (o también
"subíndice").
Los arreglos (o arrays en inglés) son usados extensamente por los
programadores para contener listas de datos en la memoria.
Índices de un array
Los índices son números 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 números de habitaciones de un hotel, es decir, para
poder dirigirnos a un hotel específico es necesario saber el nombre del mismo,
luego, si queremos llegar a una habitación específica de dicho hotel
necesitaremos, además del nombre del hotel, el número de habitación
deseado.
Página 1 de 12
Teoría de los Lenguajes y Algoritmos
Arreglos Estáticos
Dimensiones de un array
Cuando para acceder a cada posición del arreglo hace falta sólo un índice,
podemos decir que tiene una sola dimensión, y se lo puede llamar más
específicamente "vector". Podemos pensar como ejemplo de vector una lista de
números de lotería.
Vector NumLoteria
42
21
65
11
78
58
Cuando para acceder a cada posición del arreglo hacen falta dos índices,
podemos imaginarlo como una cuadrícula y decir que el arreglo es más
específicamente una "matriz". Una matriz tiene entonces dos dimensiones.
Un ejemplo para imaginarlo podrían ser los asientos de una sala de teatro
(libres / ocupados):
X X X
Página 2 de 12
Teoría de los Lenguajes y Algoritmos
Arreglos Estáticos
Nota:
Si bien C# tiene elementos de programación que se muestran al desarrollador
como arreglos dinámicos, en realidad no son arreglos y no comparten las
propiedades de memoria y rendimiento que se indicaron en el punto anterior.
Página 3 de 12
Teoría de los Lenguajes y Algoritmos
Arreglos Estáticos
Declarar un vector
Para declarar una vector en C #, puede usar la siguiente sintaxis:
datatype[ ] arrayName;
Ejemplo:
String[ ] nombres;
Inicializando un Vector
Declarar un arreglo (en este caso un vector) no lo inicializa en la memoria.
Cuando la variable de arreglo se inicializa, puede asignar valores al mismo.
El arreglo es un tipo de referencia, por lo que necesita usar la nueva palabra
clave para crear una instancia del mismo. Por ejemplo:
Página 4 de 12
Teoría de los Lenguajes y Algoritmos
Arreglos Estáticos
Página 5 de 12
Teoría de los Lenguajes y Algoritmos
Arreglos Estáticos
Ejemplo 1:
Ejemplo 2:
Resultado:
Página 6 de 12
Teoría de los Lenguajes y Algoritmos
Arreglos Estáticos
En una de las posiciones de la matriz vamos a poner una letra “X”; nótese que
ahora vamos a establecer dos índices para indicar la posición a escribir:
matriz[2, 1] = "X";
Página 7 de 12
Teoría de los Lenguajes y Algoritmos
Arreglos Estáticos
Deberíamos tener:
const int ultFila = 5;
const int ultCol = 3;
string[,] matriz = new String[ultFila, ultCol];
Página 8 de 12
Teoría de los Lenguajes y Algoritmos
Arreglos Estáticos
nombreArreglo.GetUpperBound(número dimensión)
En nuestro ejemplo:
matriz.GetUpperBound(0)
Resulta igual a 4, y:
matriz.GetUpperBound(1)
Resulta igual a 2
String[] nombres;
nombres = new String[10];
Página 9 de 12
Teoría de los Lenguajes y Algoritmos
Arreglos Estáticos
Ocurre que las posiciones se inicializan con un valor distinto a vacío, llamado
en programación “Nulo” (o “Null” en inglés). Agreguemos esta comparación y
observemos el resultado:
string.IsNullOrEmpty(variable);
Página 10 de 12
Teoría de los Lenguajes y Algoritmos
Arreglos Estáticos
Por ejemplo:
if (string.IsNullOrEmpty(nombres[0]))
{
Console.WriteLine("Es nulo o vacío");
}
nombres[0] = "";
if (string.IsNullOrEmpty(nombres[0]))
{
Console.WriteLine("Es nulo o vacío");
}
Array.Sort(nombreArreglo);
Arreglo original:
JOSE
ANA
DANIEL
Página 11 de 12
Teoría de los Lenguajes y Algoritmos
Arreglos Estáticos
Arreglo ordenado:
ANA
DANIEL
JOSE
Para poder obtener un resultado como el siguiente tenemos que armar una
lógica de recorrido y ordenamiento que veremos en documentos posteriores:
ANA
DANIEL
JOSE
Fuentes
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Arrays_y_c
adenas_de_texto
https://docs.microsoft.com/en-us/dotnet/api/system.array.sort?view=netframewo
rk-4.7.2
Página 12 de 12