Está en la página 1de 8

5 de may.

Estructuras
Definición de datos tipos Estructuras del
tipo Simple como Anidado, Método Equals
e Instrucción With.

Un proceso importante que se debe realizar al


momento de construir un programa es indicarle al
mismos en variables, módulos, subprograma, etc. que
tipos de datos van a tener que ser almacenado en
memoria para su posterior proceso, en este sentido
hasta los momentos hemos estado trabajando con tipos
de datos Primitivos o Básicos (Integer, Single, String,
etc.), los cuales son capaces de almacenar un dato a la
vez. Las estructura es un objeto que podemos construir
como un tipo de dato personalizado (tipo de dato
compuesto) que va ser capaz de almacenar en
memoria más de un dato a la vez, cuyos valores a
almacenar pueden ser del mismo tipo (Homogéneos) o
de tipos distintos (heterogéneos)

Prof. Hugo Hernández


05/05/2010
Publicación Pendiente

1
Estructuras
5 de may.

Contenido

Estructuras................................................................................................................................2
Definición de una Estructura .................................................................................................3
Declaración de una variable tipo estructura ..........................................................................4
Acceso a los miembros de una estructura .............................................................................4
Operaciones que se pueden aplicar en variables tipo Estructuras ..........................................5
Método Equals..........................................................................................................................6
Instrucción With .......................................................................................................................6
Bibliografía ...............................................................................................................................7

1
Estructuras
5 de may.

Estructuras

En el lenguaje de VB.Net 2008, se disponen de muchos tipo de datos Primitivos o


Básicos que podemos emplear para definir que tipo de valores el programa va manejar y
además este saber que tipos de operaciones se pueden realizar con dichos valores. Hasta los
momentos hemos estado trabajando con estos tipos de datos que se encuentran
predeterminado en el lenguaje sin embargo, en VB.Net 2008 se pueden utilizar no solo estos
tipos de datos sino también el programador puede construir sus propios tipos. A continuación
se recuerda todos los posibles tipos de datos que pueden ser empleados por el lenguaje:

1) Numéricos: aquellos con los que se puede realizar cálculos aritméticos. Por razones
técnicas se subdividen en:
a) Enteros (Byte, Integer, Long)
b) Reales, Decimal es o con punto Decimal (Single, Double)
2) No numéricos: aquellos que permiten manipular textos (Nombre de una persona, su
género, su dirección, etc.) o manipular el resultado de relaciones o comparaciones (Si/No).
Se subdividen en:
a) Alfanuméricos: permiten manipular un caracter o un conjunto finito de ellos. Se
subdividen en:
i) Caracter: permite almacenar, recuperar o procesar un solo caracter (Char).
ii) Cadena: permite almacenar, recuperar o procesar un conjunto finito de
caracteres, Ej. nombre, dirección, etc. (String)
b) Lógicos: representan los resultados provenientes de relaciones o comparaciones, los
cuales también pueden ser almacenados, recuperados y procesados por un programa.
(Boolean). Este tipo de dato posee dos valores literales: TRUE y FALSE (Cierto/Falso ó
Si/No)
3) Compuestos: representan tipos de datos que son capaces de manipular un conjunto de
contenidos bajo el nombre de una sola variable. Se clasifican en:
a) Estructuras: que puede manipulan varios contenidos del mismo tipo (homogéneo) o
de diferente tipo (heterogéneo) dentro de un solo nombre de variable. Utiliza
identificadores para el acceso individual de los contenidos.
b) Matrices: manipulan varios contenidos del mismo tipo (homogéneos). Utiliza índices
para el acceso individual de los contenidos.
c) Clases
4) Objetos

Como se menciono antes, las dos primeras clasificaciones ya vienen predefinidas en el


lenguaje y dependiendo del tipo escogido al momento de declarar una variable, por ejemplo
esta variable ocupa cierta cantidad de memoria capaz de almacenar datos en un rango en
particular, al declarar una variable tipo Byte, la maquina reserva 1Byte de memoria y esta será
capaz de almacenar un numero entero que se encuentre en el rango de 0 a 255. Los tipos de
datos compuestos u Objetos, son definidos por el programador haciendo que este pueda
construir sus tipos de datos, donde pueda manejar la información según sus necesidades.

2
Estructuras
5 de may.
En este sentido las Estructuras son un tipo de dato compuesto, creado por el
programador que va ser capaz de almacenar más de un dato a la vez, los cuales pueden ser del
mismo tipo (Homogéneos) o de tipos diferentes (Heterogéneos). Estos datos internos que
poseerán las estructuras van a ser guardados internamente en campos o miembros que
poseerán un nombre en particular y estos pueden ser declarados como un tipo de dato
Primitivos o de otro tipo de datos tipo estructura. Cada una de estos miembros se comportará
como una variable que dependiendo del tipo escogido podrá ser capaz de almacenar un dato
(Tipo Primitivo) o más de un dato (Tipo estructura que contendrá miembros internos)

Cuando al definir una estructura si alguno de los miembros de ésta se declara como
otro tipo de estructura se dice que éste es la Estructura Contenedora y al miembro declarado
tipo estructura se le nombra como la estructura anidada,

Definición de una Estructura


Una estructura esta debe ser creada o definida en la zona intermedia entre la cabecera
del modulo de consola (Module Module1) y la cabecera del procedimiento de arranque Main
(Sub Main())

Module Module1

‘ Zona empleada para definir Estructuras

Sub Main()

‘ Instrucciones a realizar

End Sub

End Module

Para definir una estructura se emplea la


Structure Nombre_Estructura
palabra reservada Structure luego el nombre que se
desea que posea la estructura y la estructura finaliza ‘ Lista de miembros
con End Structure, Entre la cabecera de la
estructura y la finalización de la misma se declaran Dim Miembro1 As tipo
todos los miembros o campos que va contener la

estructura, proceso que se realiza como está
establecido para declarar una variable. End Structure

3
Estructuras
5 de may.
Ej.

‘ Definición de la Estructura Punto que es del tipo Homogénea

Structure Punto

Dim x, y As Single

End Structure

‘ Definición de la Estructura Punto que es del tipo Heterogénea

Structure Circunferencia

Dim C As Punto ‘ C es del tipo estructura anidada

Dim r As Single

End Structure

‘ En este caso la Estructura Circunferencia Contiene el Miembro C el

‘ cual es una estructura del tipo anidada que posee los miembros x, y

Declaración de una variable tipo estructura


La variables que van a ser declaradas del tipo estructura se realiza de la misma manera
como lo hemos realizado hasta el momento, empleando el modificador de acceso Dim, luego
se coloca el identificador de la variable, siguiendo con la palabra reservada As y finalmente el
tipo de dato estructura al cual se quiere dar, como se mostro en el ejemplo anterior al
momento de declarar la variable C en la definición de la estructura Circunferencia.

Dim Variable As Tipo_Estructura

Se pueden declarar variables tipo estructuras dentro de cualquier módulo o


subprograma así como dentro de otras estructuras siempre y cuando esta halla sido definida
previamente. Es decir para poder definir la estructura Circunferencia se debió haber definido
primero la estructura Punto y no viceversa.

Acceso a los miembros de una estructura


Al momento de declarar una variable del tipo estructura se crea una variable capaz de
almacenar más de un dato en ella, sin embargo estos datos están contenidos en varios
miembros los cuales se les debe hacer referencia al momento de querer utilizar la información
que esta contiene o cuando se quiera almacenar algún dato. Esto hace que para las actividades
de lectura, impresión u operaciones que se necesiten emplear la información almacenada en
un miembro se debe acceder a este para su uso.

4
Estructuras
5 de may.
Para acceder a un miembro de una estructura se realiza colocando el nombre de la variable
tipo estructura y luego empleando el operador de acceso a miembro “.” se coloca el nombre
del miembro al que se desea acceder.

Ej.

Dim Estructura1 As Punto ‘ Variable tipo Punto que contiene los miembros x, y

‘ Lectura por consola del valor de x a almacenar en la variable Estructura1


Console.Write(“Inserte el valor de la coordenada x= ”)
Estructura1.x = Console.ReadLine()

‘ Variable tipo Circunferencia que contiene el miembro r tipo Single y


‘ además el miembro C tipo estructura anidada Punto que posee
‘ internamente los miembros x, y
Dim Estructura2 As Circunferencia

‘ Impresión por consola del valor de x a almacenar en la variable


‘ Estructura2 contenido en el miembro C
Console.WriteLine( “Coordenada del x del Centro = ” & Estructura2.C.x )

Nota: Observe en el ejemplo la variable Estructura2 se realiza el acceso al miembro C


pero como éste es una variable tipo estructura a la que se le desea tomar el dato almacenado
en su miembro x, se debe también realizar el acceso empleando el operador de acceso de
miembro “.”

Operaciones que se pueden aplicar en variables tipo Estructuras


Las operaciones que se les puede aplicar a las variables tipo estructuras se limitan
exclusivamente a la actividad de asignación de una variable tipo estructura a otra que sea del
mismo tipo. En el caso de realizar la asignación de una variable tipo estructura a otra del
mismo tipo, lo que hace la maquina es copiar en cada uno de los miembros de la variable a
asignar todos los valores de los miembros de la otra variable. Todas las operaciones
aritméticas y de relación que antes utilizamos para variables no pueden ser empleadas con
este tipo de variables.

Ej.

Dim Estrutura3 As Punto

Estructura3 = Estructura1
‘ Asignación de los valores de los miembros de la variable Estructura1
‘ a los campos de la variable estructura3

Estructura2.C = Estructura1
‘ Como el miembro “C” de la variable Estructura2 es del tipo Punto
‘ se puede asignar los valores de los miembros de la variable Estructura1
‘ ya que también es del tipo Punto

5
Estructuras
5 de may.

Método Equals

En Visual Basic, se ha construido un método tipo función que nos da la posibilidad de


comparar dos variables tipo estructuras, siempre y cuando estas sean del mismo tipo, dando
como respuesta un valor booleano True o False, es decir, en caso que todos los campos de las
dos variables sean iguales (True) y si al menos una o todos los miembros entre las dos
variables difieren (False).

Function Equals( Variable1, Variable2 As Tipo_estructura ) As Boolean

Gracias a este método ya no se tendría que preguntar a todos los campos de una
variable tipo estructura para saber si estas son iguales a otra variable. Recuerden que este
método se comporta como una función por lo que en la expresión de comparación aparecerá
como un llamado (Equals) y dentro de paréntesis debe estar las dos variables tipo estructuras
a comparar.

Ej. Si se quiere comparar que los miembros de la estructura anidada C de la variable


Estructura2 son iguales a los de la variable Estructura1

Forma If (Estructura1.x=Estructura3.x) And (Estructura1.y=Estructura3.y) Then


tradicional If (Estructura1.x=Estructura2.C.x) And (Estructura1.y=Estructura2.C.y) Then
Con el uso de If Equals( Estructura1 , Estructura3 ) Then
el método
Equals If Equals( Estructura1 , Estructura2.C ) Then

Instrucción With

Hasta ahora, siempre que se requiera hacer acceso a un miembro de una estructura se
coloca el nombre de la variables estructura y luego con el operador de acceso de miembro “.”
se coloca el identificador del campo al que se quiere acceder. Este proceso se hace muy
tedioso cuando se le debe realizar a una variable muchas veces en un proceso.

La instrucción With es una instrucción que


nos permite abreviar al momento de hacer
acceso a los miembros de una variable tipo With Variable_tipo_estructura
estructura su nombre, de forma tal que cuando ‘Al momento de necesitar
´realizar acceso
se quiera hacer acceso a sus miembros solo se
coloca el operador de acceso de miembro y el .Identificador_Miembro
identificador del campo al que se quiere hacer End With
acceso.

6
Estructuras
5 de may.
En el caso de colocar la instrucción With en forma anidada solo tendremos abreviado el
nombre de la última variable tipo estructura citada de manera tal que de querer acceder a
miembros de la primera abreviación se necesitara colocar el nombre de esta variable.

Ej. A continuación se presenta la forma en que se tendría que leer de un archivo la variable
Estructura2 sin el empleo de la instrucción With, con el empleo de la instrucción With y
además con el uso de la instrucción anidada With en forma correcta y en forma incorrecta.

Caso Instrucción a realizar para el proceso


Sin With Input( 1 , Estructura2.C.x )
Input( 1 , Estructura2.C.y )
Input( 1 , Estructura2.r )
Con With With Estructura2
Input( 1 , .C.x )
Input( 1 , .C.y )
Input( 1 , .r )
End With
Con With Anidado Forma incorrecta
With Estructura2
With .C
Input( 1 , .x )
Input( 1 , .y )
Input( 1 , .r ) ‘ No se tiene acceso Directo
‘ Si se quiere hacer acceso seria
Input(1, Estructura2.r)
End With
End With
Forma Correcta
With Estructura2
With .C
Input( 1 , .x )
Input( 1 , .y )
End With
Input( 1 , .r )
End With

Bibliografía

 Material instruccional del curso de computación I, Visual Basic 2008, Pacheco


Lisbeth 2009, Universidad de Carabobo - Venezuela
 Ayuda en Línea Visual Basic 2008 Express (http://msdn.microsoft.com/es-
ve/vbasic/default.aspx)

También podría gustarte