3 TerceraClaseVB
3 TerceraClaseVB
3 TerceraClaseVB
Matrices y Procedimientos
Entornos de Computacin Estadstica Mster en Estadstica Aplicada
Matrices estticas
Declaracin de un matriz esttica: se trata de especificar el nombre, las dimensiones y el tipo de datos que almacenar. Sentencia de declaracin: {Dim|Private|Public|} NombreArray (dimensiones) As tipo dimensiones: lista de expresiones numricas separadas por comas definiendo las dimensiones de la matriz (por defecto el lmite inferior de cada dimensin es 0. Ejemplos:
Dim MiVector(0 To 59) As String Dim MiVector(59) As String define un vector con 60 elementos de tipo carcter cada uno de los cuales se referencia como: MiVector(0), MiVector(1),...,, MiVector(59) Dim X(100,5) As Double define una matriz bidimensional con 101 filas y 6 columnas de valores reales referenciados por X(0,0), X(0,1),...,X(100,5)
& j & )
Matrices dinmicas
Cuando no se conocen las dimensiones de la matriz antes de ejecutar la aplicacin se utilizan matrices dinmicas. Una matriz dinmica puede ser redimensionada en cualquier momento durante la ejecucin de la aplicacin. Declaracin de un matriz dinmica: {Dim|Private|Public|} NombreArray () As tipo . Redim NombreArray(dimensiones) Ejemplos: Dim X(,) As Integer declara una matriz bidimensional dinmica Dim f As Integer, c As Integer tiene la matriz: ) f = ImputBox(Cuntas filas tiene la matriz: ) c = ImputBox(Cuntas columnas ReDim X(f-1,c-1) se definen f filas y c columnas
Seccin de declaraciones del formulario (variables de mbito mdulo) Dim X(,) As Double 'X es un array dinmico a nivel de formulario con dos columnas Dim medias() As Double 'vector dinmico para las medias Dim Fil, Col As Integer 'variables para almacenar las dimensiones del array X Procedimiento conducido por el suceso click del control BotonSalir Private Sub BotonSalir_Click(...) Handles BotonSalir.Click End End Sub
'Redimensionamos medias para guardar las medias ReDim medias(Col-1) For j = 0 To Col-1 For i = 0 To Fil-1 medias(j) = medias(j) + X(i, j) / Fil Next i Next j 'Se imprimen los resultados en el control Resultado Etiqueta2.Visible = True Resultado.Visible = True For j = 0 To Col-1 Resultado.Text = Resultado.Text & vbCrLf & medias(j) 'vbCrLf es un salto de lnea Next j se vuelve a mostrar el mensaje inicial de la etiqueta Explica.Text = "Este programa calcula las medias por columnas de una matriz de datos. Para introducir los datos pulse en el botn DATOS" End Sub
donde n es una expresin entera (opcional) para activar una secuencia aleatoria determinada. Ejemplo: ReDim vector(m - 1) Randomize() For i = 0 To m - 1 vector(i) = Rnd() Next i
Se define con cuatro parmetros-argumentos: Matriz(,) que es una matriz bidimensional de datos numricos, Nfilas y Ncolumnas especifica las dimensiones de la matriz; Min() es un vector unidimensional en el que se dar como resultado los mnimos calculados dentro del procedimiento
Funcin Suma Public Function Suma(ByVal X() As Double, ByVal n As Integer) As Double Tiene dos argumentos: el vector de datos, X, y el nmero de elementos a sumar en dicho vector, n Dim i As Integer, s As Double For i = 0 To n - 1 s = s + X(i) Next i Suma = s End Function
Procedimiento Aleatorio para generar el vector de nmeros aleatorios Public Sub Aleatorio(ByVal m As Integer, ByRef vector() As Double) Dos argumentos: la dimensin del vector, m, y el propio vector, vector(), que hay que pasarlo ByRef (por referencia) para que pueda ser modificado Dim i As Integer ReDim vector(m - 1) Randomize() For i = 0 To m - 1 vector(i) = Rnd() Next i End Sub
Procedimiento conducido por el suceso click del botn Generar Private Sub Generar_Click(...) Handles Generar.Click Dim Resultado As Double Dimension = InputBox("Introduce la dimensin del vector:") ReDim X(Dimension - 1) Aleatorio(Dimension, X) n = InputBox("Cuntos elementos quieres sumar: ") 'Podras incluir una sentencia que controle n<=Dimension Resultado = Suma(X, n) Result.Visible = True Result.Text = "El resultado es: " & Format(Resultado, "#.##") 'El resultado se imprime en la etiqueta Result, usando 'slo dos cifras decimales End Sub