Ingeniero

Páginas: 7 (1584 palabras) Publicado: 17 de diciembre de 2012
Vectores y Matrices (Parte 2)
Arrays Multidimensionales
En algunas ocasiones hasta los arrays se quedan cortos... al menos los arrays simples o unidimensionales, (una sola dimensión), si en un ejemplo anterior el de los rascamientos, quisieras saber las veces que te has rascado cada día del mes... tendríamos otra vez el problema, podríamos usar un array para cada día del mes: Dia1(24),Dia2(24)... pero de nuevo tendríamos complicaciones para algunos cálculos... Por suerte para nosotros, existe otra forma de usar los arrays. En nuestro caso nos serviría el que los arrays tuviesen dos dimensiones, al estilo de una tabla con filas para cada día del mes y columnas para cada una de las horas del día en cuestión, para hacer esto, dimensionaremos un array de esta forma: Dim Dias(31, 24) AsInteger Para guardar o recuperar un valor lo haremos de la misma forma que con un array simple, pero especificando dos valores separados por una coma: Dias(DiaMes, HoraDia) = 1 y por supuesto, podemos usarlo con bucles FOR: For Dia = 1 To 31 For Hora = 1 To 24 RascadasMes = RascadasMes + Dias(Dia, Hora) Next Next Después que estos dos bucles terminen, la variable RascadasMes tendrá el total de vecesque nos hemos rascado cada uno de los días del mes que estamos procesando. Si queremos almacenar las rascadas de cada día de cada mes de un año, No Problem! Dim Meses(12, 31, 24) As Integer De esta forma solucionaríamos en problema, ya que al añadir una tercera dimensión, podemos usar esta para cada uno de los meses, por ejemplo, el total de veces que nos hayamos rascado a las 22 horas del día 30del mes 9 (septiembre), estaría en: Diabuscado = Meses(9, 30, 22) Reconozco que este ejemplo de las rascada no es útil, pero por lo menos hemos visto cómo usar los arrays. Recuerda que los arrays pueden ser de cualquier tipo: Integer, String, Double, etc.

¿Cuántos elementos tiene un array?
En algunas ocasiones podemos necesitar saber el número de elementos contenidos en un array, para estoscasos existen dos funciones, una para saber el índice menor y otra para saber el mayor. Por ejemplo si tenemos este array: Horas(8 To 22) El menor sería 8 y el mayor 22, para averiguarlo:

Menor = LBound(Horas) Mayor = UBound(Horas)
LBOUND: Devuelve cual es el primer elemento de una matriz, no el valor de la variable, solo con que valor comienza. UBOUND: Devuelve cual es el ultimo elemento deuna matriz, no el valor de la variable, solo con que valor finaliza la matriz.

Esta forma es para los arrays unidimensionales, para averiguar estos valores en arrays con más de una dimensión, tendremos que especificar la dimensión de la que queremos averiguar ese valor menor o mayor, por ejemplo, si tenemos Dim Dias(1 To 31, 0 To 23) MenorMes = LBound(Dias,1) 'Devolvería 1 MayorMes = Ubound(Dias,1) 'Devolvería 31 MenorHora = LBound(Dias, 2) 'Devolvería 0 MayorHora = UBound(Dias, 2) 'Devolvería 23

Redimensionando arrays multidimensionales
Veamos ahora cómo funciona el Redim y Redim Preserve con los arrays con varias dimensiones: igual Sí, da lo mismo que el array tenga una o muchas dimensiones. Lo único que debemos saber es que no podemos cambiar el número de dimensiones, aunque sí elnúmero de elementos de cada una de las dimensiones. Un ejemplo: Tenemos inicialmente esta declaración: Dim Meses(1 To 6, 1 To 31, 0 To 23) As Integer y necesitamos ampliar la primera dimensión de 6 a 12: Redim Meses(1 To 12, 1 To 31, 0 To 23) y si queremos conservar los valores almacenados. Redim Preserve Meses(1 To 12, 1 To 31, 0 To 23)

Lo que no podemos hacer es esto: Redim Meses(1 To 31, 0To 23) porque pasamos de tener tres dimensiones a pretender tener sólo dos y eso, no está permitido. Ni al revés tampoco, es decir si tenemos un array con dos dimensiones y queremos que tenga tres. Si queremos hacer esto último, tendremos que eliminar el primer array y volver a dimensionarlo con las dimensiones que queramos tener:

Dim Dias(31, 24) Erase Dias Dim Dias(12, 31, 24) El problema...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero
  • Ingeniero

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS