Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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
Si necesitamos por ejemplo guardar 10 calificaciones enteras debemos declarar un arreglo con 10
“casillas”.
int calificaciones[10];
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.
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;
};
int main()
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:
emp[0]
emp[1]
emp[2]
emp[3]
emp[4]
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.