Está en la página 1de 5

MATERIAL DE ESTUDIO

1
Tema: 4 “Estructuras de datos” (Parte 1)

INTRODUCCIÓN
Hasta ahora, al trabajar con variables debíamos declarar un conjunto de datos para guardar datos
de forma individual. Éstos son datos de un tipo pre-definido en el lenguaje C: enteros, flotantes,
booleanos etc.

Sin embargo, trabajar con éstos datos de manera individual no nos permitiría por ejemplo, guardar
la temperatura promedio por cada día durante 80 años, ¡ya que tendríamos que declarar una
variable por cada dato!

Para hacer más práctico éste procedimiento podemos agrupar variables del mismo tipo en una
estructura llamada ARREGLO. Se dice que es una estructura definida por el usuario, por que
agrupa datos simples en un espacio de memoria que permite el mejor tratamiento de la
información que contiene y es el programador quien la crea. En éste caso podríamos guardar
todos los datos de tipo flotante en él. Es indispensable entender cómo funcionan los arreglos para
después entender estructuras más complejas.

Si los datos a guardar son de distinto tipo (por ejemplo nombre, edad y domicilio) existe una
herramienta llamada ESTRUCTURA que me permite guardar datos (correspondientes a un solo
registro) de distintos tipos en un mismo lugar.

Por otra parte, si tratamos de resolver un problema más complejo, por ejemplo, crear un
programa que permita capturar los datos de muchos amigos en una agenda, requeriríamos varias
ESTRUCTURAS o registros que me permitan guardar la información. Cuando manipulamos varios
registros se dice que usamos ARREGLOS DE ESTRUCTURAS, es decir varios registros guardados en
posiciones contigüas de memoria.

A continuación observaremos como la diferencia entre arreglos, estructuras y arreglos de


estructuras, recalcando que sirven para guardar información cada vez más más completa.

ARREGLOS
Los arreglos, también conocidos como arrays o vectores, son utilizados para almacenar múltiples
valores en una única variable. En un aspecto más profundo, los arreglos, permiten almacenar
muchos valores en posiciones de memoria continuas, lo cual permite acceder a un valor u otro de

Estructuras de datos Ing. Dulce Angélica Salas Salinas pág. 1


manera rápida y sencilla. Estos valores pueden ser números, letras o cualquier tipo de variable que
deseemos siempre y cuando todos sean del mismo tipo.

Si necesitamos por ejemplo guardar 10 calificaciones enteras debemos declarar un arreglo con 10
“casillas”.
int calificaciones[10];

El número entre corchetes es el número de datos enteros que utilizaremos

Cada una de las casillas estará identificada por un índice que es una variable que regularmente se
llama “i” (aunque el nombre lo puede elegir el programador). Este índice será un numerador de
posición cuya principal característica es que comienza en 0.

La primer casilla se llamará entonces calificaciones [0], la segunda calificaciones [1] y así
sucesivamente hasta calificaciones [9].

Hay que tener cuidado en no tratar de escribir en la casilla 10 pues no existe dado que el valor
máximo de i es 9.

7 2 10 1 8 5 6 9 8 10
Recuerde que la casilla
i=10 no existe porque
i=0 i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 i=9 su valor solo llega a 9
En éste caso:
calificaciones[0]=7

calificaciones[9]=10

calificaciones [3]=1

PRÁCTICA 6: ARREGLOS.
Conociendo el concepto de arreglos, aprenderemos a declararlos, llenarlos con datos que nos
proporcione el usuario, desplegaremos los datos en pantalla para asegurarnos que fueron
correctamente guardados y obtendremos un promedio de ellos.
Analicemos el Programa6_arreglos: Este programa utiliza el arreglo del ejemplo para solicitar al
usuario que llene las casillas con 10 calificaciones para posteriormente desplegarlas en pantalla y
desplegar el promedio de ellas.
1. Inicialice un nuevo proyecto en DEV-C++.
2. Copie el “Programa6_arreglos” *Recuerde que las instrucciones de instalación y puesta en
marcha de un programa están en la presentación “Conceptos preliminares de programación
1”.
3. Todos los programas incluyen comentarios que explican línea a línea qué está ocurriendo
en el programa. Analice los comentarios agregados a cada línea y realice una prueba de
escritorio en su cuaderno de la salida del programa.
4. Depure y ejecute el código para comprobar que su prueba de escritorio es correcta.

Estructuras de datos Ing. Dulce Angélica Salas Salinas pág. 2


Aprenda más sobre el tema de arreglos en los siguientes links:

https://www.programarya.com/Cursos/C++/Estructuras-De-Datos/Arreglos-O-Vectores

http://c.conclase.net/curso/?cap=010

ESTRUCTURAS

Un registro es una agrupación de datos, los cuales no necesariamente son del mismo tipo. Se
definen con la palabra “struct”.En el siguiente ejemplo estamos creando una ESTRUCTURA o
registro llamado persona, que consta de los campos nombre,inicial,edad y nota. Podemos declararlo
fuera del main(es lo más comun) .Observe que en el ejemplo estamos declarando que podemos usar
un solo registro llamado persona. No podríamos aún guardar un listado con varios registros.

struct{
string nombre;
char inicial;
int edad;
float nota;
} persona;

int main()
{
persona.nombre = "Juan";
persona.inicial = 'J';
persona.edad = 20;
persona.nota = 7.5;
cout << "La edad es " << persona.edad;

return 0;
}

ARREGLOS DE ESTRUCTURAS
Supongamos que queremos guardar información básica de todos los empleados de una empresa.
Esta información contiene los datos nombre, sexo y salario. Podemos declarar una variable tipo
struct compuesta por los 3 datos solicitados así:
struct empleado{
char nombre[30];
char sexo[12];
float salario;
};

Estructuras de datos Ing. Dulce Angélica Salas Salinas pág. 3


La declaración de la estructura se escribe después de las librerías y antes del main(aunque también
la puede encontrar en ejemplos donde aparece dentro del main).
El nombre de la nueva estructura es empleado. Nos servirá como base para poder guardar la
información, sin embargo necesitamos indicar cuántos registros necesitaremos, así que a
continuación agregaremos lo siguiente:

int main()

struct empleado emp[5];

De ésta manera declaramos un arreglo de estructuras que se llama “emp” de tipo “struct
empleado” lo cual quiere decir que, de la estructura inicial definida arriba:

NOMBRE SEXO SALARIO

Necesitaremos 5 posiciones (pueden ser N posiciones, simplemente variaría el índice entre


corchetes). Observe que se declara igual que un arreglo, solo que no guardará datos simples (como
enteros o caracteres) si no datos compuestos por que en cada posición puedo guardar un registro con
nombre, sexo y salario. El índice funciona igual que en arreglos, el primer registro está en el índice
0, el siguiente en el 2, y así sucesivamente, siendo la última posición la 4.

NOMBRE SEXO SALARIO

emp[0]

emp[1]

emp[2]

emp[3]

emp[4]

Estructuras de datos Ing. Dulce Angélica Salas Salinas pág. 4


Así hemos creado un ARREGLO DE ESTRUCTURAS. Denominado así porque básicamente es
un arreglo, pero en cada posición guarda una estructura de datos.
Para acceder a cada casilla podemos hacer lo siguiente:
emp[0].salario=10000;

Donde estamos especificando que en el primer registro (posición 0), en el dato salario vamos a
guardar el dato 10000.
No es muy práctico llenar posición por posición por lo que los datos se llenan mediante un FOR
(finalmente es un arreglo)
for(int i=0;i<5;i++)
{
cout<<"Nombre: ";
cin>>emp[i].nombre;
cout<<"Sexo: ";
cin>>emp[i].sexo;
cout<<"Salario: ";
cin>>emp[i].salario;
}

Observamos que el FOR se manipula con un índice que va del 0 al 4.Se solicitan entonces al
usuario los datos nombre, sexo y salario guardándolos en la posición 0 para luego volverlos a pedir
para la posición 1 y así hasta la última posición que es la 4. Si la condición terminara en i<=5(i
menor o igual a 5) el programa marcaría error, recuerde que la posición 5 no existe debido a que i
comienza en 0.
Como podrá predecir, el despliegue de la información es muy semejante por que se basa en el
mismo FOR.

PRÁCTICA 7: ARREGLOS DE ESTRUCTURAS


Analicemos el Programa7_ArreglosdeEstructuras: Este programa contiene el código completo del
ejercicio anterior.
1. Inicialice un nuevo proyecto en DEV-C++.
2. Copie el “Programa7_ArreglosdeEstructuras”
3. Analice los comentarios agregados a cada línea y realice una prueba de escritorio en su
cuaderno de la salida del programa.
4. Depure y ejecute el código para comprobar que su prueba de escritorio es correcta.
*Cuando ejecute el código capture únicamente nombres de una sola palabra y en el campo
sexo datos de un solo carácter(M ó F), en consideración a los tipos de datos que definimos
en la estructura.

Estructuras de datos Ing. Dulce Angélica Salas Salinas pág. 5

También podría gustarte