Documente Academic
Documente Profesional
Documente Cultură
LENGUAJE DE PROGRAMACIN I
ARREGLO DE ESTRUCTURAS
REGISTRO O ESTRUCTURA
Una estructura contiene mltiple variables, llamadas campos, que pueden ser de tipos diferentes, lgicamente relacionados. La estructura es importante para la creacin de programas potentes, tales como archivos, bases de datos.
REGISTRO O ESTRUCTURA
SINTAXIS struct nombre_struct { tipo_dato campo1 tipo_dato campo2 tipo_dato campon} variable_struct
REGISTRO O ESTRUCTURA
Ejemplo: Representar CLIENTE.
CODIGO NOMBRE TELEFONO SALDO
struct cliente { float codigo; char nombre [50]; float telefono; float saldo; } dato;
ARREGLO DE ESTRUCTURAS
Es un conjunto de estructuras. Este tipo de arreglos se caracterizan por tener un solo ndice. Los arrays de estructuras son ideales para almacenar un archivo completo de empleados, un archivo de alumnos. En C++ se utilizan arreglos de estructuras como un mtodo para almacenar datos en una archivo de disco.
ARREGLO DE ESTRUCTURAS
Cdigo
dato [0]
Nombre
Telfono
Saldo
001 dato[0].codigo
200 dato[0].saldo
50 dato[1].saldo 1000 dato[ 2].saldo
003 dato[2].codigo
ARREGLO DE ESTRUCTURAS
OPERACIONES CON ESTRUCTURAS
EJEMPLO N 1
/* Ingresa los codigos, nombres y notas de 10 alumnos y luego muestra cuntos estn aprobados y cuntos desaprobados*/
#include<iostream.h> #include<iomanip.h> #include<stdio.h> //variables globales struct alumnos { int codigo; char nombre[15]; int nota; }datos [10]; void mostrar(void); void ingresar(void);
{
EJEMPLO N 1
main() { ingresar(); mostrar(); return 0; }
EJEMPLO N 1
void ingresar(void) { int i; for(i=0;i<5;i++) { cout<<"ingrese alumno Nro "<<(i+1)<<":"<<endl; cout<<"\ncodigo:";cin>>datos[i].codigo; cout<<"Nombre:";gets(datos[i].nombre); cout<<"\nNota:";cin>>datos[i].nota; } }
void mostrar(void) { int i ,aprob=0,desaprob=0; cout << setiosflags(ios::left); cout<<"\n\t\t LISTADO DE ALUMNOS"<<endl; cout<<setw(10)<<"Nro"<<setw(10)<<"CODIGO"<<setw(30)<<"NOMBRE"<<setw(10 )<<"NOTA"<<endl; for(i=0;i<5;i++) { cout<<setw(10)<<(i+1)<<setw(10)<<datos[i].codigo<<setw(30)<<datos[i].nombre<< setw(10) <<datos[i].nota<<endl; if (datos[i].nota >= 11) aprob++; else desaprob++; } cout<<"\n Aprobados: "<<aprob<<endl; cout<<"\n Desaprobados: "<<desaprob<<endl; }
EJEMPLO N 1
AL EJECUTAR
EJEMPLO N 2
/* estru9 ordena alfabticamente 5 elementos de un arreglo*/ /* usa el mtodo de la burbuja*/ #include <stdio.h> #include <conio.h> #define NUM_PER 5 #include<string.h> #include<ctype.h> #include<iostream.h> #include<iomanip.h>
EJEMPLO N 2
struct persona { char nombre[30]; int edad; char sexo; }A[NUM_PER]; void otro_reg(); void ordenar(); int i,j;
EJEMPLO N 2
void main() { char opcion; do{clrscr(); //Pantalla Principal cout<<"ELIJA UNA OPCION CON EL TECLADO"<<endl; cout<<"\n(A) Ingresar Datos"; cout<<"\n(L) Ordenar"; cout<<"\n(T) Terminar\n\n\n\n\n\n"; opcion = tolower(getche()); switch(opcion) { case 't':break; case 'a': otro_reg();break; case 'l':ordenar();break; } }while(opcion!='t'); getch(); }
EJEMPLO N 2
void otro_reg() { for(i=0; i<NUM_PER; i++){ clrscr(); flushall();cout<<"\n Introduzca un nombre : ";gets(A[i].nombre); cout<<"\n Edad: ";cin>>A[i].edad; cout<<"\n sexo: ";cin>>A[i].sexo; } }
EJEMPLO N 2
void ordenar() {clrscr();
persona aux;
for(i=0;i<NUM_PER-1;i++) for(j=0;j<NUM_PER-1-i;j++)
{
EJEMPLO N 2
//lista array ordenado setiosflags(ios::left); cout<<setw(20)<<"NOMBRE"<<setw(10)<<"E DAD"<<setw(10)<<"SEXO"<<endl; for(i=0;i<NUM_PER;i++) { cout<<setw(20)<< A[i].nombre <<setw(10)<< A[i].edad<<setw(10)<<A[i].sexo <<endl; } getch(); }
EJEMPLO N 2
EJEMPLO N 2
EJERCICIOS PROPUESTOS
1.- Un array de estructuras contiene la descripcin de personas para efectos estadsticos. Cada estructura tiene los campos: nombre, edad, sexo, altura, color de piel, color de ojos, nacionalidad Escribir un programa que mediante un men realice: a) lea y almacene datos en este array, b) ordene el array por orden alfabtico de nombres c) imprima su contenido.
EJERCICIOS PROPUESTOS
2.- Desarrolle un programa, que presente el sgte men: a.- introducir notas b.- Listar promedio final por pantalla c.- Salir Donde la estructura de los datos es la sgte: Codigo (int) Nombre char[30] Parcial (int) Final (int) Trabajo (int) Y PF= (parcial + final + trabajo) /3 Asuma que el nro mximo de alumnos es 30
EJERCICIOS PROPUESTOS
3.- Un mdico almacena la siguiente informacin de sus pacientes: nombre, direccin, telfono, fecha ltima visita, si es o no privado, si tiene alergias, y un campo de observaciones. Se desea un programa con las siguientes opciones: Introduccin de registros interactivamente. Imprimir en pantalla toda la informacin del paciente a) Dado un nombre de un paciente encontrar la fecha de la ltima visita b) Listar todos los pacientes con alergias c) Listar alfabticamente todos los pacientes privados
d) Imprimir todo el listado completo de paciente