lunes, 8 de octubre de 2007

Las estructuras

Alien [blackhat4all@gmail.com]

Pienso que los que se están leyendo esto es porque alguna vez se han enfrentado a un lenguaje de programación, a sus tipos de datos y variables, a sus warnings y errors. Si es así, pienso también que les habrá pasado por la cabeza alguna vez crear un programa que trabaje con datos cargados desde un archivo, no sé..., algo como datos de personas o cosas así.

Si aún no se han adentrado en el tema de las clases, quizás hagan para esto algo como:
Nombre -> Tipo texto
Edad -> Tipo entero
Teléfono -> Tipo entero
Dirección -> Tipo texto
...

Y no está nada mal para alguien que aún no domine todos los artilugios del lenguaje pero… ¿han tratado de ir más allá?.

Lo más parecido a las clases son las estructuras. Estas son un tipo de dato nuevo creado a conveniencia del usuario y que puede almacenar la información que este quiera. Veamos un ejemplo.

Si quisiéramos crear una variable que almacene el nombre de una persona, en C++ haríamos algo como:
String Nombre;

Si esto mismo lo quisiéramos hacer en Visual Basic:
Dim Nombre

Si el caso fuera en JavaScript, quizás sería así:
Var Nombre;

Pero… ¿y si lo que queremos almacenar es un conjunto de datos que no son de un mismo tipo, y no es tan complejo como para necesitar una clase?. Para eso están las estructuras.

Digamos que vamos a hacer un listado de los asistentes a una reunión, y de ellos necesitamos sus nombre, edades y direcciones para localizarlos (un ejemplo sencillo)

Para esto, en C++ deberíamos hacer una estructura de la siguiente forma:
Type Def Registro(String Nombre; int Edad, String Direccion)

Visual Basic:
Type Registro
  String Nombre
  Int Edad
  String Direccion
End Type

Todo lo que hemos hecho es crear un nuevo tipo de dato como el entero, o la cadena, solo que a diferencia de estos que almacenan un tipo de dato fijo, el nuestro almacenará un conjunto de tipos de datos ya existentes, y completamente válido en cualquier lenguaje.

Aunque todo esto está bien, sería ilógico crear una estructura para almacenar un solo registro. Generalmente las estructuras siempre van acompañadas de un arreglo, permitiéndonos almacenar varias entradas, también se pueden ligar con los arreglos dinámicos o listas simples, enlazadas o cualquier otro recurso permitido por el lenguaje para almacenar varios campos.

Después que tenemos la estructura y el arreglo, ya podemos guardar en estos la lista de los asistentes o cualquier otro ejemplo que nos sea puesto.

Para insertar un elemento en un arreglo numérico se necesita la posición en la que se quiere insertar el valor y el valor como tal, de la misma manera se hace para insertar un elemento dentro de un arreglo de un tipo de dato creado por nosotros mismos, se requiere en primer lugar el índice dentro del arreglo y por consiguiente en este caso los valores que vamos a colocar. De igual forma se le pide a una estructura contenida en un arreglo el valor, veamos un ejemplo en Visual Basic:

Type Persona
  Dim Edad
  Dim Nombre
End Type

‘Se crea Lista que es del tipo de dato persona y es la forma en que nos vamos a referir a este Nuevo tip de dato
Dim Persona as new Lista
‘Se crea el arreglo de 10 elementos y de tipo Lista
Dim Arreglo(9) as Lista

‘Para insertar un elemento en la posición 0
Arreglo(0).Lista.Edad=10
Arreglo(0).Lista.Nombre=Pepito

‘Para tomar un valor
Msgbox (“La edad de ” & Arreglo(0).Lista.Nombre) & “ es ” & Arreglo(0).Lista.Edad & “ años.”)

Las estructuras por lo general se usan para este tipo de casos, aunque no por esto deben suplantar el uso de las clases, las cuales por su complejidad (que no es tanta), permiten más facilidades a la hora de usarlas, pero mejor dejamos las clases para otra edición.



Artículos relacionados


No hay comentarios: