{"id":760,"date":"2026-04-11T21:10:46","date_gmt":"2026-04-11T21:10:46","guid":{"rendered":"https:\/\/hackcuba.net\/?p=760"},"modified":"2026-04-11T21:10:46","modified_gmt":"2026-04-11T21:10:46","slug":"las-estructuras","status":"publish","type":"post","link":"https:\/\/hackcuba.net\/?p=760","title":{"rendered":"Las estructuras"},"content":{"rendered":"\n<p>Pienso que los que se est\u00e1n leyendo esto es porque alguna vez se han enfrentado a un lenguaje de programaci\u00f3n, a sus tipos de datos y variables, a sus warnings y errors. Si es as\u00ed, pienso tambi\u00e9n que les habr\u00e1 pasado por la cabeza alguna vez crear un programa que trabaje con datos cargados desde un archivo, no s\u00e9&#8230;, algo como datos de personas o cosas as\u00ed.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Si a\u00fan no se han adentrado en el tema de las clases, quiz\u00e1s hagan para esto algo como:<br>Nombre -&gt; Tipo texto<br>Edad -&gt; Tipo entero<br>Tel\u00e9fono -&gt; Tipo entero<br>Direcci\u00f3n -&gt; Tipo texto<br>&#8230;<\/p>\n\n\n\n<p>Y no est\u00e1 nada mal para alguien que a\u00fan no domine todos los artilugios del lenguaje pero\u2026 \u00bfhan tratado de ir m\u00e1s all\u00e1?.<\/p>\n\n\n\n<p>Lo m\u00e1s 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\u00f3n que este quiera. Veamos un ejemplo.<\/p>\n\n\n\n<p>Si quisi\u00e9ramos crear una variable que almacene el nombre de una persona, en C++ har\u00edamos algo como:<br><code>String Nombre;<\/code><\/p>\n\n\n\n<p>Si esto mismo lo quisi\u00e9ramos hacer en Visual Basic:<br><code>Dim Nombre<\/code><\/p>\n\n\n\n<p>Si el caso fuera en JavaScript, quiz\u00e1s ser\u00eda as\u00ed:<br><code>Var Nombre;<\/code><\/p>\n\n\n\n<p>Pero\u2026 \u00bfy 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\u00e1n las estructuras.<\/p>\n\n\n\n<p>Digamos que vamos a hacer un listado de los asistentes a una reuni\u00f3n, y de ellos necesitamos sus nombre, edades y direcciones para localizarlos (un ejemplo sencillo)<\/p>\n\n\n\n<p>Para esto, en C++ deber\u00edamos hacer una estructura de la siguiente forma:<br>Type Def Registro(String Nombre; int Edad, String Direccion)<\/p>\n\n\n\n<p>Visual Basic:<br><code>Type Registro<br>&nbsp;&nbsp;String Nombre<br>&nbsp;&nbsp;Int Edad<br>&nbsp;&nbsp;String Direccion<br>End Type<\/code><\/p>\n\n\n\n<p>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\u00e1 un conjunto de tipos de datos ya existentes, y completamente v\u00e1lido en cualquier lenguaje.<\/p>\n\n\n\n<p>Aunque todo esto est\u00e1 bien, ser\u00eda il\u00f3gico crear una estructura para almacenar un solo registro. Generalmente las estructuras siempre van acompa\u00f1adas de un arreglo, permiti\u00e9ndonos almacenar varias entradas, tambi\u00e9n se pueden ligar con los arreglos din\u00e1micos o listas simples, enlazadas o cualquier otro recurso permitido por el lenguaje para almacenar varios campos.<\/p>\n\n\n\n<p>Despu\u00e9s 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.<\/p>\n\n\n\n<p>Para insertar un elemento en un arreglo num\u00e9rico se necesita la posici\u00f3n 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 \u00edndice 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:<\/p>\n\n\n\n<p><code>Type Persona<br>&nbsp;&nbsp;Dim Edad<br>&nbsp;&nbsp;Dim Nombre<br>End Type<\/code><\/p>\n\n\n\n<p>\u2018Se 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<br><code>Dim Persona as new Lista<br><\/code>\u2018Se crea el arreglo de 10 elementos y de tipo Lista<br><code>Dim Arreglo(9) as Lista<\/code><\/p>\n\n\n\n<p>\u2018Para insertar un elemento en la posici\u00f3n 0<br><code>Arreglo(0).Lista.Edad=10<br>Arreglo(0).Lista.Nombre=Pepito<\/code><\/p>\n\n\n\n<p>\u2018Para tomar un valor<br><code>Msgbox (\u201cLa edad de \u201d &amp; Arreglo(0).Lista.Nombre) &amp; \u201c es \u201d &amp; Arreglo(0).Lista.Edad &amp; \u201c a\u00f1os.\u201d)<\/code><\/p>\n\n\n\n<p>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\u00e1s facilidades a la hora de usarlas, pero mejor dejamos las clases para otra edici\u00f3n.<\/p>\n\n\n\n<p>Escrito por Alien [blackhat4all@gmail.com]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pienso que los que se est\u00e1n leyendo esto es porque alguna vez se han enfrentado a un lenguaje<\/p>\n","protected":false},"author":2,"featured_media":668,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18,36],"tags":[58,38,230],"class_list":["post-760","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion","category-proyecto-blackhat","tag-programacion","tag-proyecto-blackhat","tag-struct"],"_links":{"self":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts\/760","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=760"}],"version-history":[{"count":1,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts\/760\/revisions"}],"predecessor-version":[{"id":761,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts\/760\/revisions\/761"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/media\/668"}],"wp:attachment":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=760"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=760"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=760"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}