Apúntate...


Consultas, desarrollo de programas y petición de presupuestos:

jueves, 23 de agosto de 2012

Estructuras

Una estructura es :
  • Es una colección de variables, la cual puede poseer distintos tipos de datos. 
  • Es un tipo de dato definido por el usuario.
Ayudan a organizar y manejar datos complicados en programas debido a que agrupan diferentes tipos de datos a los que se los trata como una sola unidad en lugar de ser vistas como unidades separadas.

Las estructuras funcionan como clases (estás las veremos en más adelante), que solo tienen propiedades y el método NEW para crear nuevas instancias de ella.

La declaración de estructuras :

PUBLIC STRUCT Identifier
  Field 1 [ Embedded array declaration ] AS [ Datatype
  Field 2 [ Embedded array declaration ] AS [ Datatype
    .     .     . 
  Field n [ Embedded array declaration ] AS [ Datatype ]
END STRUCT

En la definición del tipo de estructura, se especifican los elementos que la componen así como sus tipos. Cada elemento es llamado miembro
Por ejemplo:


Public Struct alumno ' ejemplo de estructura
id As Integer ' id: identificador del alumno
nombre As String ' nombre: variable donde guardaremos el nombre del alumno
apellidos As String' apellidos: variable donde guardaremos los apellidos del alumno
curso As Integer ' curso: variable tipo numero integer que guarda en que curso esta (1,2,3,..)
promedio_notas As Float 'variable que guarda el promedio de las notas que tenga el alumno
End Struct

En este caso, el tipo de estructura es alumno
Y los miembros: id,nombre,apellidos,curso,promedio_notas

Para definir una variable que sea de tipo estructura alumno:

Dim alum As New Alumno

El acceso a los miembros de la estructura es por medio del operador Punto de la siguiente manera:
alum.id = 12
alum.nombre = "Julio"
alum.apellidos = "Sanchez Berro"
alum.curso = 1
alum.promedio_notas = 5.5

 Si tenemos que volver a usar la variable, en este caso alum,  reiniciarla con otros datos debemos usar la orden NEW

alum = New Alumno

Y ya podremos darle nuevos valores:

alum.id = 13
alum.nombre = "Fernando"
alum.apellidos = "Bonzalez"
alum.curso = 3
alum.promedio_notas = 8

Y esta linea nos imprimiría la información que guarda la estructura: 
Print alum.id, alum.nombre, alum.apellidos, alum.curso, alum.nombre


 Un ejemplo completo de uso:

Dim nota As Float 'variable donde guarda la nota que pide
Dim i As Integer 'variable para el bucle For... Next
Dim acumulada As Float 'va acumulando las notas del alumno
Dim numero_asignaturas As Integer = 5 'suponemos que tiene 5 asignaturas
Dim r1 As New Alumno

r1.nombre = "Julio"
r1.apellidos = "Perez"
r1.id = 32
r1.curso = 1

'pido las notas del alumno..
For i = 1 To numero_asignaturas
Print "Introduce lan nota de la asignatura "; i; ": "
Input nota
acumulada += nota
Next
' calculo el promedio:

r1.promedio_notas = acumulada / numero_asignaturas

'Escribo datos del alumno:
Print "Id del alumno:"; r1.id
Print "Nombre Completo:"; r1.nombre;" "; r1.apellidos
Print "Cursa en: "; r1.curso

Print "Nota promedio: "; r1.promedio_notas

Ahora otro ejemplo, esta vez usamos una estructura para que una función nos devuelva varios datos:
Es un programa que pide 5 artículos y su coste,  va sumando el valor de los artículos, mostrando los valores, y al final muestra el total  de la compra
 1º definimos el tipo estructura

Public Struct dato
cadena As String
valor As Float
End Struct
2º Definimos el programa principal, que es el encargado de sumar los datos, y hacer las llamadas a la función:

Dim lista As New Dato
Dim a As Integer
Dim suma As Float

Print "----------------------------------------"
Print " Lista de la Compra"
Print "----------------------------------------"

For a = 1 To 5
lista = PeticionDatos("Lista de la Compra")
suma += lista.valor
Print lista.cadena, lista.valor
Next
Print "----------------------------------------"
Print "La suma total es: ", suma


3º Definimos una función que nos piden los datos, y nos devuelve la estructura:

Public Function PeticionDatos(nombre As String) As Dato

Dim dat As New Dato

Print "******* " & nombre & " **********"
Print "Introduce el nombre del articulo:"
Input dat.cadena
Print "Introduce el valor del articulo:"
Input dat.valor

Return dat

End

Fíjate que la variable que devuelve Return, es del tipo estructura Dato (llamada dat), que es la que se le asigna, en el programa principal a otra variable estructura Dato, llamada  Lista.

Enlace de descarga de los ejemplo: enlace





Para más información:
http://gambaswiki.org/wiki/lang/structdecl
http://gambaswiki.org/wiki/lang/new

1 comentario:

  1. Me parece una definición muy útil para trabajar con variables de distinto formato.

    ResponderEliminar

A falta de donativos... un poco de publicidad