Professional Documents
Culture Documents
ARRAYS
INTRODUCCIÓN
Un array es una estructura de datos que contiene distintos valores del mismo tipo
asociada a un identificador. Para acceder a un elemento individual de una tabla
utilizando su posición entera, que recibe el nombre de índice.
Un array puede tener 1 o más dimensiones (hasta 60) y cada dimensión tiene un límite
inferior que siempre es 0 y un límite superior que se corresponde al tamaño de la
dimensión del array menos 1.
Las tablas permiten el acceso aleatorio. Los elementos de una tabla ocupan posiciones
de memoria contiguas, lo que significa que un programa puede acceder con la misma
rapidez a todos los elementos de una tabla.
DECLARACIÓN
Para declarar un array debemos utilizar un identificador y encerrados entre paréntesis,
se debe indicar las dimensiones de que va a constar. Los arrays se pueden declarar de
muchas formas pues se puede indicar o no el tamaño de cada dimensión, inicializar o no
sus valores. A continuación vemos la sintaxis correspondiente
Sintaxis:
Dim <nombreArray>([IndiceMayorDim1],[IndiceMayorDim2]…)
As <Tipo de Dato>[=<Valores>]
En una tabla definida como Dim tabla(3) existen 4 elementos, pues el número que se
incluye entre paréntesis es el índice mayor y éstos comienzan en 0.
Se pueden asignar valores en el momento de la declaración sólo en el caso de que no se
especifique los índices. En el caso de más de una dimensión se considera que el array
tiene el mismo número de filas y columnas a la hora de inicializar los valores.
Dim datos(2,2) As Integer={{2,3},{4,5}} ‘error, no puede tener el dato del índice mayor
Dim datos(,) As Integer={{2,3},{4,5,5}} ‘error, no puede tener <> nº de filas y columnas
Ejemplos:
‘Se define un array de 31 y 11 posiciones
Dim alumnos(30),cursos(10) As String
‘No se determina el tamaño
Dim notas() As Double
Dim edades() As Byte={18,20,25,27}
Dim sueldos( , ) As Decimal ‘2 dimensiones
Ejemplo
Sub Main()
' array con 4 elementos: de 0 a 3
Dim ciudades(3) As String
Dim elemento As String
Dim i As Integer
REDIMENSIÓN DE ARRAYS
Los arrays en .net son de tamaño variable. Cada vez que se cambia de tamaño un array ,
el entorno destruye internamente el array actual y crea un nuevo objeto con el mismo
nombre.
Puede utilizar la instrucción ReDimy para cambiar el tamaño de una o más dimensiones
de una matriz que ya se ha declarado. Si dispone de una matriz grande y ya no necesita
algunos de sus elementos, ReDimy puede reducir el tamaño de la matriz para liberar
memoria. Por otra parte, si el código determina que una matriz necesita más elementos,
ReDimy puede agregarlos.
Ejemplo:
Sub Main()
‘Se define el array
Dim i, miArray(5) As Integer
'Redimensiona el array
ReDim Preserve miArray(7)
PROPIEDADES
En realidad, todas las tablas que definamos, sea cual sea el tipo de elementos que
contengan, son objetos que derivan de System.Array. Es decir, van a disponer de todos
los miembros que se han definido para esta clase, entre los que son destacables:
• Length: Campo de sólo lectura que informa del número total de elementos
que contiene la tabla. Si la tabla tiene más de una dimensión indica el
número de elementos de todas sus dimensiones y niveles. Por ejemplo:
Visual Basic .Net | 0BARRAYS 4
Dim tabla1(3) As Integer
Dim tabla2(4,5) As Integer
Console.WriteLine(tabla1.Length); ‘Imprime 4
Console.WriteLine(tabla2.Length); ‘Imprime 30
• Rank: Campo de sólo lectura que almacena el número de dimensiones de
la tabla. Obviamente si la tabla no es multidimensional valdrá 1. Por
ejemplo:
Dim tabla1(3) As Integer
Dim tabla2(4,5) As Integer
Console.WriteLine(tabla1.Rank); ‘Imprime 1
Console.WriteLine(tabla3.Rank); ‘Imprime 2
MÉTODOS
La clase System.Array (que utilizan implícitamente todas las tablas) contiene muchos
métodos que se pueden utilizar para trabajar con tablas. Este tema describe los métodos
empleados más frecuentemente.
• Sort. Este método efectúa una ordenación en contexto de la tabla pasada
como argumento.
Dim tabla () As Integer= {4,6,3,8,9,3} ‘Sin ordenar
System.Array.Sort (tabla) ‘Ordenada
• Clear. Este método cambia el valor de un rango de elementos de la tabla a
cero (para tipos de valor) o Nothing (para tipos de referencia), como en este
ejemplo:
Dim tabla () As Integer = {4,6,3,8,9,3}
‘pone a 0 3 elementos a partir de la posición 2
System.Array.Clear (tabla, 2, 3)
• Clone. Este método crea una nueva tabla cuyos elementos son copias de los
elementos de la tabla original.
Dim data() As Integer = {4, 6, 3, 8, 9, 3}
Dim miClon() As Integer
miClon = data.Clone()
El método Clone realiza una copia superficial. Si la tabla copiada contiene
referencias a objetos, se copiarán las referencias pero no lo objetos; las dos
tablas apuntarán a los mismos objetos.
• GetLength. Calcula el número de elementos que contiene una dimensión
del array
Dim tabla (4,5) As Integer
‘muestra la longitud de la dimensión primera que es 5
tabla.GetLength(0)
‘muestra la longitud de la dimensión segunda que es 6
tabla.GetLength(1)
• IndexOf. Este método devuelve el índice entero de la primera vez que
aparece un valor pasado como argumento, o –1 si el valor no está presente.
Ejemplo
Sub Main()
Dim miArray() As Integer
miArray = CrearArray(5)
For Each i In miArray
Console.WriteLine(i)
Next
Console.ReadLine()
End Sub
PRÁCTICAS
1) Hacer un programa que sume dos matrices de enteros de 2 dimensiones y la muestre
por pantalla en dos dimensiones.
a) Hacer un método para pedir la dimensión de las matrices
b) Hacer un métodos para introducir los datos de las dos matrices (un métodos
llamado dos veces).
c) Hacer un método para sumar las matrices
d) Hacer un método para mostrar el resultado.
2) Se desea calcular las notas finales de los alumnos de un curso, así como también el
promedio, mínimo y máximo de éstas. Se introducirá el número de alumnos de un curso
y las notas parciales de cada uno de éstos junto con la nota del examen final. La nota
final de cada alumno se calculará en función de la siguiente fórmula:
NM= (P1+P2+P3+P4)/4 // Media de los exámenes parciales
NF=0.7*NM+0.3*EX //Cálculo de la nota final: nota media y examen
Se desea saber al final la nota media de todas las notas finales, la máxima y la
mínima.
3) Construir la siguiente aplicación
a) Declarar una estructura de tipo Persona que contenga la siguiente información:
nombre, apellidos, edad, DNI
b) Declarar un array que almacene la estructura anterior por medio de un método
que nos dice el tamaño en tiempo de ejecución
c) Implementar un método para introducir los datos.
d) Implementar un método para ordenar la matriz por edad.
Método de ordenación de la burbuja.