Está en la página 1de 24

UNIVERSIDAD NACIONAL DEL CALLAO

LENGUAJE DE PROGRAMACIÓN I

ARREGLO DE ESTRUCTURAS

DRA. BERTILA GARCÍA DÍAZ


REGISTRO O ESTRUCTURA
• Una estructura contiene múltiple
variables, llamadas campos, que
pueden ser de tipos diferentes,
lógicamente relacionados.
• La estructura es importante para la
creación 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 método para almacenar datos en una
archivo de disco.
ARREGLO DE ESTRUCTURAS

Código Nombre Teléfono Saldo


001 ACEVEDO CARMEN 6241966 200
dato [0] dato[0].codigo dato[0].nombre dato[0].telefono dato[0].saldo

002 ARNAO BRYAN 6233678 50


dato[1].codigo dato[1].nombre dato[1].telefono dato[1].saldo
dato [1]
003 CANDIA MIGUEL 5236616 1000
dato[2].codigo dato[2].nombre dato[2].telefono dato[ 2].saldo
dato [2]
ARREGLO DE ESTRUCTURAS
OPERACIONES CON ESTRUCTURAS
1.- ASIGNACION
dato[0].saldo = 200

S= dato[0].saldo + dato[1].saldo +
dato[2].saldo//1250

dato[0].saldo = dato[0].saldo + 100 //300


EJEMPLO Nº 1
/* Ingresa los codigos, nombres y notas de 10 alumnos y luego muestra cuántos están
aprobados y cuántos 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)
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

También podría gustarte