200 likes | 413 Views
ESTRUCTURAS. Ing. Eduard Antonio Lozano Córdoba. DEFINICIÓN. Las estructuras nos permiten agrupar varios datos, aunque sean de distinto tipo, que mantengan algún tipo de relación, permitiendo manipularlos todos juntos, con un mismo identificador, o por separado.
E N D
ESTRUCTURAS Ing. Eduard Antonio Lozano Córdoba
DEFINICIÓN Las estructuras nos permiten agrupar varios datos, aunque sean de distinto tipo, que mantengan algún tipo de relación, permitiendo manipularlos todos juntos, con un mismo identificador, o por separado. Las estructuras son llamadas también muy a menudo registros, o en inglés "records". Y son estructuras análogas en muchos aspectos a los registros de bases de datos. Y siguiendo la misma analogía, cada variable de una estructura se denomina a menudo campo, o "field".
MÁS DATOS Los componentes individuales de una estructura se llaman miembros. Cada miembro (elemento) de una estructura puede contener datos de un tipo diferente de otros miembros. Por ejemplo, se puede utilizar una estructura para almacenar diferentes tipos de información sobre una persona, tal como nombre, estado civil, edad y fecha de nacimiento. Cada uno de estos elementos se denominan nombre del miembro. Una estructura puede contener cualquier número de miembros, cada uno de los cuales tiene un nombre único, denominado nombre del miembro. Supongamos que se desea almacenar los datos de una colección de discos compactos (CD) de música. Estos datos pueden ser: Título. Artista. Número de canciones. Precio. Fecha de compra. La estructura CD contiene cinco miembros. Tras decidir los miembros, se debe decidir cuáles son los tipos de datos para utilizar por los miembros. Esta información se representa en la tabla siguiente:
Sintaxis para estructuras en C/C++ En C/C++ se forma una estructura utilizando la palabra reservada struct, seguida por un campo etiqueta opcional, y luego una lista de miembros dentro de la estructura. La etiqueta opcional se utiliza para crear otras variables del tipo particular de la estructura: structcampo_etiqueta{ tipo_miembro miembro_1; tipo_miembro miembro_2; tipo_miembro miembro_3; : : tipo_miembromiembro_n; }; Un punto y coma finaliza la definición de una estructura puesto que esta es realmente una sentencia C/C++
1. Formas de declarar una estructura structstbarco{ char sztipo[iString15]; char szmodelo[iString15]; char sztitular[iString20]; intianio; long intlhoras_motor; floatfprecioventa; }; En un programa, podemos asociar una variable con una estructura utilizando una sentencia similar a la siguiente: structstbarcostbarco_usado; La sentencia define stbarco_usado de tipo structstbarco. La declaración requiere el uso del campo etiqueta de la estructura.
2. Formas de declarar una estructura Es posible declarar una variable usando esta sintaxis: structstbarco{ char sztipo[iString15]; char szmodelo[iString15]; char sztitular[iString20]; intianio; long intlhoras_motor; floatfprecioventa; } stbarco_usado; Aquí la declaración de variable va antes del punto y coma final.
3.Formas de declarar una estructura Cuando se asocia sólo una variable con el tipo estructura, el campo etiqueta puede ser eliminado, por lo que sería posible escribir: struct { char sztipo[iString15]; char szmodelo[iString15]; char sztitular[iString20]; intianio; long intlhoras_motor; floatfprecioventa; } stbarco_usado;
Inicialización de estructuras Se puede inicializar una estructura de dos formas. Se puede inicializar una estructura dentro de la sección de código de su programa, o bien se puede inicializar la estructura como parte de la definición. Cuando se inicializa una estructura como parte de la definición, se especifican los valores iníciales, entre llaves, después de la definición de variables estructura. structinfo-libro { chartitulo[30] ; char auto[30]; char editorial [30] ; intanyo; } librol = {"Maravilla del saber ",'Lucas Garcia", "McGraw-Hill", 1999); Otro ejemplo podría ser: structcoleccion-CD { char titulo[30] ; char artista[25]; intnum-canciones; float precio; char fecha-compra[8]; } cdl = { "El humo nubla tus ojos", "col Porter", 15, 2545, " O 2 / 6 / 9 9" } ;
Ejemplos de estructurasdatos personales #include<iostream.h> struct persona { char nombre[10]; char apellido[10]; int edad; chartelefono[15]; }; voidmain () { persona var; cout<<"DATOS DE LA PERSONA"<<endl; cout<<"Introduzca la edad: "<<endl; cin>>var.edad; cout<<"Introduzca el telefono: "<<endl; cin>>var.telefono; cout<<"Introduzca el nombre: "<<endl; cin>>var.nombre; cout<<"Introduzca el apellido: "<<endl; cin>>var.apellido; cout<<endl; cout<<"DATOS INGRESADOS"<<endl; cout<<"Nombre: "<<var.nombre<<endl; cout<<"Apellido: "<<var.apellido<<endl; cout<<"Telefono: "<<var.telefono<<endl; cout<<"Edad: "<<var.edad<<endl<<endl; cout<<endl; }
Ejemplos de estructurasnotas de un individuo #include<iostream.h> struct boleta { char nombre [10]; char apellido [10]; float nota1; float nota2; float nota3; floatnotafinal; }; voidmain () { boleta eduard; cout<<"Nombre: "; cin>>eduard.nombre; cout<<"Apellido: "; cin>>eduard.apellido; cout<<"Primer Parcial: "; cin>>eduard.nota1; cout<<"Segundo Parcial: "; cin>>eduard.nota2; cout<<"Final Parcial: "; cin>>eduard.nota3; eduard.notafinal=(eduard.nota1+eduard.nota2+eduard.nota3)/3; cout<<endl; cout<<endl; cout<<"DATOS INGRESADOS"<<endl; cout<<"Nombre: "<<eduard.nombre<<endl; cout<<"Apellido: "<<eduard.apellido<<endl; cout<<"Primer Parcial: "<<eduard.nota1<<endl; cout<<"Segundo Parcial: "<<eduard.nota2<<endl; cout<<"Final: "<<eduard.nota3<<endl; cout<<"Definitiva: "<<eduard.notafinal<<endl; cout<<endl; }
Ejercicio Ingresar los datos de una persona: Nombre Nota1 Nota2 Nota3 Nota4 Nota5 Nota6 Nota7 Nota8 Nota9 Nota10 Nota11 Nota12 Nota13 Decir nota mayor Decir nota menor Decir Promedio de nota
Estructura de Arreglodatos de varias personas #include<iostream.h> struct persona { char nombre[10]; char apellido[10]; int edad; chartelefono[15]; }; voidmain () { persona var[100]; inti,reg; cout<<"Introduzca el numero de registros a insertar"<<endl; cin>>reg; for(i=1;i<=reg;i++) { cout<<"PERSONA NUMERO: "<<i<<endl; cout<<"Introduzca la edad: "<<i<<":"<<endl; cin>>var[i].edad; cout<<"Introduzca el telefono: "<<i<<":"<<endl; cin>>var[i].telefono; cout<<"Introduzca el nombre: "<<endl; cin>>var[i].nombre; cout<<"Introduzca el apellido: "<<endl; cin>>var[i].apellido; cout<<endl; } cout<<"PERSONAS INGRESADAS"<<endl; for(i=1;i<=reg;i++) { cout<<"Nombre: "<<var[i].nombre<<endl; cout<<“Apellido: "<<var[i].apellido<<endl; cout<<“Telefono "<<var[i].telefono<<endl; cout<<“Edad: "<<var[i].edad<<endl<<endl; cout<<endl; } }
Estructura de Arreglo notas #include<iostream.h> struct boleta { char nombre [10]; char apellido [10]; float nota1; float nota2; float nota3; floatnotafinal; }; voidmain () { boleta eduard[50]; inti,a; cout<<"cuantos datos va a ingresar"<<endl; cin>>a; for (i=1;i<=a;i++) { cout<<"introduzca el nombre en la posicion ("<<i<<"):"<<endl; cin>>eduard[i].nombre; cout<<"introduzca el apellido en la posicion ("<<i<<"):"<<endl; cin>>eduard[i].apellido; cout<<"introduzca el nota 1 en la posicion ("<<i<<"):"<<endl; cin>>eduard[i].nota1; cout<<"introduzca el nota 2 en la posicion ("<<i<<"):"<<endl; cin>>eduard[i].nota2; cout<<"introduzca el nota 3 en la posicion ("<<i<<"):"<<endl; cin>>eduard[i].nota3; eduard[i].notafinal=(eduard[i].nota1+eduard[i].nota2+eduard[i].nota3)/3; cout<<endl; } cout<<endl; cout<<"PERSONAS INGRESADAS"<<endl; for (i=1;i<=a;i++) { cout<<"Nombre: "<<eduard[i].nombre<<endl; cout<<"Apellido: "<<eduard[i].apellido<<endl; cout<<"Primer Parcial: "<<eduard[i].nota1<<endl; cout<<"Segundo Parcial: "<<eduard[i].nota2<<endl; cout<<"Final: "<<eduard[i].nota3<<endl; cout<<"Definitiva: "<<eduard[i].notafinal<<endl; cout<<endl; } }
Actividad en clase Variables generales: Nombre, Apellido, Edad ,nota1, nota2, nota3, definitiva. • Calcular y mostrar la suma de las edades de todos los estudiantes. • Mostrar los datos de los estudiantes mayores de edad (edad >= 18). • Mostrar los datos del estudiante que obtuvo el promedio mayor. • Mostrar los datos del estudiante que obtuvo la nota mas baja en la primera evaluación. • Mostrar los datos del estudiante que obtuvo la nota mas alta en la ultima evaluación.
edanlinux@gmail.com Thank You !
Leer Estructuras anidas Palabras reservada UNION
El tamaño de una estructura El operador sizeof se aplica sobre un tipo de datos, o bien sobre una variable. Se puede aplicar para determinar el tamaño que ocupa en memoria una estructura. El siguiente programa ilustra el uso del operador sizeof para determinar el tamaño de una estructura: #include <stdio.h> #include <iostream.h> /// * declarar una estructura Persona * / struct persona { char nombre[30]; int edad; float altura; float peso; }; void main( ) { struct persona mar; cout<<"EL TAMAÑO DE LA ESTRUCTURA ES: " <<sizeof(mar); }