Está en la página 1de 8

Algoritmos y programación

Tema 8: Estructuras.
Índice pág.

Introducción…………………………………………………………………………….2

8.1 Definición de estructura…………………………………………………………..3

8.2 Inicialización de estructura……………………………………………………....4

8.3 Utilización de estructura con funciones………………………………………...5

Conclusión……………………………………………………………………………..7

Bibliografía…………………………………………………………………………….8

1
Algoritmos y programación
Tema 8: Estructuras.
INTRODUCCIÓN

En el siguiente informe, aborda el tema de estructuras, de la manera más superficial


posible, debido a la gran información disponible sobre los temas a tratar en el
documento, como es la definición de estructura, el cual es el subtema más complejo
y digerible que se encuentra en el documento, también se habla un poco de la
relación que tiene las estructuras con los arreglos, así como lo que es una estructura
anidada, de igual manera se presentan algunos ejemplos para que sea más
entendible los temas de inicialización de estructuras y utilización de estructuras con
funciones.

2
Algoritmos y programación
Tema 8: Estructuras.
DEFINICIÓN DE ESTRUCTURA

Una estructura es un grupo de variables las cuales puede ser de diferentes tipos
sostenidas o mantenidas junto a una solo unidad, la unidad es la estructura.

Las estructuras de datos se emplean con el objetivo principal de organizar los datos
contenidos dentro de la memoria de la PC. Así, que nuestra primera experiencia con
estructuras comienza desde el momento mismo en que usamos en nuestros
programas variables de tipos primitivos (char, short, int, float, etc.).

Los tipos de estructuras son:

En C /C++ se forma una estructura utilizando la palabra reservada struct, seguida


por un campo etiqueta opcional, y luego una lista de miembro dentro de la
estructura. La etiqueta opcional se utiliza para crear otras variables del tipo particular
de la estructura:

Caso uno, estructura anónima:

De acuerdo con la sintaxis general de la orden struct es posible crear estructuras


de datos anónimas. Solamente hay que tener en cuenta que una declaración
anónima se debe definir al menos una variable al final de la declaración.

Caso dos, estructuras con nombre:

La sintaxis para declarar estructuras con nombres es bastante parecida a la sintaxis


para declarar estructuras anónimas; salvo que en una declaración con una
estructura con nombres se debe especificar el nombre deseado de la misma.
Además, en una declaración de estructura con nombre la o las variables definidas
al final de la misma son opcionales.

Estructuras anidadas

Una class o struct también puede contener otra definición de class o struct dentro
de si misma, que se denomina clase anidada; en esta situación, la clase
contenedora se conoce como la clase adjunta. La definición de clase anidada se
considera como un miembro de la clase adjunta, pero por lo demás es separada.

3
Algoritmos y programación
Tema 8: Estructuras.
INICIALIZACIÓN DE ESTRUCTURA

A las estructuras se les pueden dar valores iniciales de manera análoga a como se
hace con los arrays. Primero debemos definir la estructura y después, cuando
declaramos una variable como estructura, le damos el valor inicial que queremos.
Por ejemplo, para la estructura que hemos definido antes podría ser:

Por supuesto, hemos de introducir en cada campo el tipo de datos correcto. Por lo
tanto, el nombre ("Juanjo") debe ser una cadena de no más de 29 caracteres
(recordemos que hay que reservar un espacio para el símbolo '\0'), el apellido
("López") una cadena de menos de 39, el teléfono una de 9 y la edad debe ser de
tipo int.

Vamos a ver la inicialización de estructuras en acción:

También se puede inicializar un array de estructuras de la forma siguiente:

En este ejemplo cada línea es un registro. Como sucedía en los arrays, si asignamos
valores iniciales al array de estructuras no hace falta indicar cuántos elementos va
a tener. En este caso la matriz tiene 3 elementos, que son los que le hemos
introducido.

4
Algoritmos y programación
Tema 8: Estructuras.
UTILIZACIÓN DE ESTRUCTURA CON FUNCIONES

Las estructuras se pueden pasar directamente a una función igual que se hace con
las variables. Por supuesto, en la definición de la función de debe indicar el tipo de
argumento que usamos:

tipo nombre_función ( struct nombre_de_la_estructura nombre_de_la


variable_estructura )

En el ejemplo siguiente se usa una función llamada suma que calcula cual será la
edad 20 años más tarde (simplemente suma 20 a la edad). Esta función toma como
argumento la variable estructura arg_amigo. Cuando se ejecuta el programa
llamamos a suma desde main y en esta variable se copia el contenido de la variable
amigo.

Si dentro de la función suma hubiésemos cambiado algún valor de la estructura,


dado que es una copia, no hubiera afectado a la variable amigo de main. Es decir,
si dentro de suma hacemos, por ejemplo, arg_amigo.edad = 20; el valor de
arg_amigo cambiará, pero el de amigo seguirá siendo 30.

También se pueden pasar estructuras mediante punteros o se puede pasar


simplemente un miembro (o campo) de la estructura. Si usamos punteros para pasar
estructuras como argumentos habrá que hacer unos cambios al código anterior (en
negrita):

5
Algoritmos y programación
Tema 8: Estructuras.

Lo primero será indicar a la función suma que va a recibir es puntero, por lo cual
ponemos * a arg_amigo. Segundo, como dentro de la función suma usamos un
puntero a estructura y no una variable estructura, debemos cambiar el ‘.’ por el '->'.
Tercero, dentro de main, cuando llamamos a suma, debemos pasar la dirección de
amigo, no su valor, por lo tanto, debemos anteponer '&'.

Si usamos punteros a estructuras corremos el riesgo (o tenemos la ventaja, según


cómo se mire) de poder cambiar los datos de la estructura de la variable amigo de
main.

• Paso de una estructura a funciones

Otra posibilidad es no pasar toda la estructura a la función, sino tan sólo los
miembros que sean necesarios. El ejemplo anterior sería más correcto usando esta
tercera opción, ya que sólo usamos la miembro edad:

6
Algoritmos y programación
Tema 8: Estructuras.
CONCLUSIÓN

Para dar por concluido, se definen a las estructuras como un tipo de variable
multifuncional con diferentes usos, pero al igual que otras variables deben de ser
declaras, por otra parte, las estructuras anidadas son estructuras que se encuentra
a dentro de otra estructura la cual es llamada estructura compleja, que la estructura
anidada no podría existir sin la estructura compleja, las estructuras también como
lo dice en el tema definición de estructura, son la variables primitivas que utilizamos
comúnmente como int, char, entre otras, las estructuras como las apuntadores
también tienen una gran relación y utilización con los arreglos.

7
Algoritmos y programación
Tema 8: Estructuras.
BIBLIOGRAFÍA

Alonzo, J. (octubre, 2010). Lenguaje de programación: C++ Estructuras. mayo 25,


2020, de Universidad de Guanajuato Sitio web:
https://www.cimat.mx/~pepe/cursos/lenguaje_2010/slides/slide_33.pdf

González, V. (diciembre 2, 2002). Estructuras. mayo 25, 2020, de Lenguaje en C


Sitio web:
http://platea.pntic.mec.es/vgonzale/cyr_0204/cyr_01/control/lengua_C/estruct
uras.htm