Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arreglo Estructuras
Arreglo Estructuras
LENGUAJE DE PROGRAMACIÓN I
ARREGLO DE ESTRUCTURAS
• 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 método para almacenar datos en una
archivo de disco.
ARREGLO DE ESTRUCTURAS
S= dato[0].saldo + dato[1].saldo +
dato[2].saldo//1250
#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)
EJEMPLO Nº 1
{
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;
}
AL EJECUTAR
EJEMPLO Nº 2
/* estru9 ordena alfabéticamente 5 elementos de un
arreglo*/
/* usa el método 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++)
{
if(strcmp(A[j].nombre,A[j+1].nombre)>0)
{
aux=A[j];
A[j]=A[j+1];
A[j+1]=aux;
}
EJEMPLO Nº 2
//lista array ordenado
setiosflags(ios::left);
cout<<setw(20)<<"NOMBRE"<<setw(10)<<"EDAD"
<<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 descripción de
personas para efectos estadísticos. 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 alfabético 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 máximo de alumnos es 30
EJERCICIOS PROPUESTOS
3.- Un médico almacena la siguiente información de sus
pacientes: nombre, dirección, teléfono, fecha última visita,
si es o no privado, si tiene alergias, y un campo de
observaciones. Se desea un programa con las siguientes
opciones:
Introducción de registros interactivamente.
Imprimir en pantalla toda la información 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 alfabéticamente todos los pacientes privado s
d) Imprimir todo el listado completo de paciente
GRACIAS POR SU ATENCIÓN