Professional Documents
Culture Documents
Estructuras de datos
Estructuras de datos
Dos estructuras de datos fundamentales son las conocidas como: matriz (o array) y registro (o estructura). Son de uso frecuente, por lo que son elementos imprescindibles en la programacin de muchos problemas. Por ejemplo, las notas correspondientes a las distintas evaluaciones realizadas a cada uno de los alumnos de un determinado curso forman una matriz, y la ficha que contiene los datos personales de cada uno de estos alumnos es un ejemplo de registro (o estructura).
Estructuras de datos
Matrices
Una matriz (array en ingls) es un conjunto de elementos contiguos, todos del mismo tipo, que comparten un nombre comn y a los que es posible acceder mediante la posicin (ndice) que ocupa cada uno de ellos en la matriz, como un vector o una matriz en lgebra. Esta disposicin permitir escribir cdigo ms simple, ya que ser posible establecer bucles en los que se recorra los elementos de una matriz mediante el nmero de ndice. A las matrices de una dimensin se les suele llamar tambin vectores o listas, y a las matrices de dos dimensiones, tablas.
elemento
Matriz Matrizaa
...
Estructuras de datos
Matrices
Es posible definir matrices de hasta 60 dimensiones en Visual Basic y de cualquier tipo de datos (tipos fundamentales y estructuras definidas por el usuario). La representacin de las matrices se hace mediante variables con subndices. Los subndices son nmeros enteros consecutivos y, por defecto, el primer ndice valdr 0. Una matriz de dos dimensiones se representa con una variable con dos subndices (filas, columnas). Una de tres con tres, etctera. Para formar el nombre de una matriz y definir su tipo, se siguen las mismas reglas que para las variables:
Dim a(24) As Integer matriz de enteros, 1 dimensiones. Dim c(12,5) As String matriz de cadenas, 2 dimensiones.
Actualizacin Septiembre 2005 4
Estructuras de datos
Declaracin de matrices
La declaracin de una matriz especifica el nombre de la matriz, el nmero de elementos de la misma y el tipo de stos:
Dim variable[(dimension)][As tipo]
donde:
variable es el nombre de la matriz. dimension es una lista de expresiones numricas, separadas
por comas y que definen las dimensiones de la matriz. Esta lista puede ser de la forma:
[inferior To] superior [, ... tipo define el tipo de la variable (Integer, Long, String, etc.)
Actualizacin Septiembre 2005 5
Estructuras de datos
Estructuras de datos
Bucle For para Rellenar la matriz a con datos. For i = 1 To n A(i) = InputBox(Introduce el elemento & i & de A) Next i Bucle For para Visualizar la matriz con Print For i = 1 To n MsgBox A(i) Next i
Estructuras de datos
Matrices dinmicas
Una matriz dinmica, a diferencia de las anteriores, puede ser redimensionada en cualquier momento de la ejecucin del programa. Para crear una matriz dinmica, primero hay que declararla como si fuera una matriz esttica (con Dim), pero sin darle dimensin. Para reasignar dinmicamente el nmero de elementos se utiliza la sentencia ReDim. No es posible cambiar el nmero de dimensiones de la misma, slo los tamaos de cada dimensin. Cada vez que se ejecuta ReDim, todos los valores previamente almacenados se pierden. Para cambiar el tamao conservando los valores hay que utilizar la palabra clave Preserve, en cuyo caso no es posible cambiar el/los ndice/s inferior/es, slo el superior.
Actualizacin Septiembre 2005 8
Estructuras de datos
Estructuras de datos
Para copiar una matriz en otra es necesario asignar uno a uno los valores de la primera en las variables de la segunda. La funcin Ubound(variable, dimension) devuelve el valor ms alto de la dimensin de la variable de tipo matriz indicada.
Actualizacin Septiembre 2005 10
Estructuras de datos
Estructuras: Type
Una estructura o registro es un nuevo tipo de datos, especificado por el usuario, que puede definirse como una coleccin de datos de diferentes tipos. Para declarar una estructura, hay que utilizar la instruccin de Visual Basic Type ... End Type. Esta instruccin slo puede aparecer en la seccin Declaraciones de los mdulos.
Type Ficha Nombre As String * 60 Direccion As String * 40 Telefono As String *12 Edad As Integer End Type
En este ejemplo se declara un tipo de datos Ficha que consta de cuatro campos, denominados Nombre, Direccion, Telefono y Edad.
Actualizacin Septiembre 2005 11
Estructuras de datos
Estructuras: Type
Una vez declarado el tipo de datos, ya es posible declarar variables de este tipo. Por ejemplo, la siguiente sentencia declara la variable Alumno de tipo Ficha:
Dim Alumno As Ficha
Para referirse a un determinado campo de una estructura, se utiliza la notacin variable.miembro. Por ejemplo:
Alumno.Nombre = InputBox("Introduce tu nombre") Alumno.Telefono = InputBox("Introduce tu telfono") MsgBox "El telfono introducido ha sido " & Alumno.Telefono
12
Estructuras de datos
Estructuras de datos
Un tipo definido por el usuario tambin puede contener miembros que sean matrices estticas y dinmicas:
Type Ficha ... Asignaturas() As String matriz dinmica Optativas(3) As String matriz esttica ... End Type
Actualizacin Septiembre 2005 14
Estructuras de datos
Estructuras de datos
FUNDAMENTOS DE INFORMTICA
Tema 3 Estructuras de datos
17