UNIVERSIDAD TECNOLOGICA DE MEXICO SC Lenguajes de Programación I 8.3 Estructuras Mtra. Irma Ardón
Estructura o Registro Tipo de dato cuyas variables almacenan un conjunto de valores (o campos de información) de igual o diferente tipo entre sí Un registro es como un cajón con divisiones interiores
Declaración en C de la Estructura o Tipo de Dato struct TNombre { struct TPersona { tipo1 campo1; char nombre[20]; tipo2 campo 2; char dirección[30]; tipoN campoN; int edad; }; }; La T antepuesta al Nombre indica la declaración de la estructura o tipo de dato, no debe olvidarse el ; después de la llave de fin
Declaración en C de la Variable a Manipular TNombre NombreVariable; TPersona Estudiante;
Manejo de un Campo de Información NombreVariable.campoX lee(Estudiante.nombre) Estudiante.edad = 20 muestra(Estudiante.dirección) Otro ejemplo: struct TTransporte{ char marca[10]; int plazas; char placas[8]; }; TTransporte coche; coche.plazas = 5;
Arreglos de Registros… En la variable Estudiante se pueden almacenar tres campos de información de una sola persona, para almacenar la información de N personas se puede declarar una variable tipo Arreglo de Registros (conjunto de valores todos ellos del mismo tipo, TPersona) #define N 20 TNombre NombreVector[N]; TPersona Lista[N]; Variable Lista, vector de elementos tipo TPersona
…Acceso a los Campos de cada Elemento Indicar la posición –i- que ocupa dentro del arreglo, seguido del operador de punto y el nombre del campo a manipular NombreVector[i].nombre = valor; Lista[i].edad = 21; //lee, muestra, operaciones, //condiciones, etc.
#include <iostream> #include <stdio #include <iostream> #include <stdio.h> #define MAX 2 using namespace std; struct TPersona { char nombre[20]; char direccion[30]; int edad; }; int main(){ TPersona Agenda[MAX]; int i; for(i=0; i<MAX; i++){ cout<<"\nNOMBRE? "<<i+1<<" "; fflush(stdin); gets(Agenda[i].nombre); cout<<"\nDIRECCION? "<<i+1<<" "; gets(Agenda[i].direccion); cout<<"\nEDAD? "; cin>>Agenda[i].edad; } //….
UNIVERSIDAD TECNOLOGICA DE MEXICO SC Lenguajes de Programación I for (i=0; i<MAX; i++){ cout<<"\n"<<Agenda[i].nombre; cout<<"\n"<<Agenda[i].direccion; cout<<"\n"<<Agenda[i].edad<<endl; } Ejercicio. Promediar campo flotante
Compras y Ventas con Ordenamiento y Búsqueda