Está en la página 1de 7

1/7

GUIA DE LABORATORIO Nº5


ESTRUCTURAS
OBJETIVOS

Al finalizar esta práctica el usuario estará capacitado en realizar lo siguiente:

1. Saber definir una estructura en C**


2. Crear funciones que manejen como parámetros estructuras.
3. Crear funciones que manejen como parámetros arreglo de estructuras.

Ejem 1.
#include <iostream>
using namespace std;
struct complejo
{ float real;
float imag;
};
//Definicion de funciones
complejo suma(complejo x, complejo y)
{ complejo z;
z.real=x.real+y.real;
z.imag=x.imag+y.imag;
return z;
}

//Funcion principal
int main()
{ complejo x, y, z;
cout << "Ingrese parte real y parte imaginaria de x > ";
cin >> x.real >> x.imag;
cout << "Ingrese parte real y parte imaginaria de y > ";
cin >> y.real >> y.imag;
z=suma(x,y);
cout << "La suma es : " << z.real << " + " << z.imag <<" i"<< endl;
}

Ejem 2.
#include <iostream>
#include <iomanip.h>
#include <math.h>
using namespace std;

Algoritmos y Programación Ing. Felix Huari Evangelista


2/7

struct punto
{ float x;
float y;
};

//Definiendo las funciones


double modulo(punto p1,punto p2)
{
return sqrt(pow(p1.x-p2.x,2)+pow(p1.y-p2.y,2));
}

//Definicion de funciones
int main()
{ punto p1={1,1},p2={2,2};
double distancia;
distancia=modulo(p1,p2);
cout << "La distancia es : " << setprecision(5) << setw(8) << distancia << endl;
}

Ejem 3.
//* Programa que permite calcular la edad que tiene o cumplirá durante este año,
dado la fecha de nacimiento de Ud.
#include <iostream>
using namespace std;
// declarando la estructura
struct FechaNacimiento
{ unsigned int dia,mes,year;
};

void Lectura(FechaNacimiento &x)


{ cout<<"Ingrese el Dia:";
cin>>x.dia;
cout<<"Ingrese el Mes:";
cin>>x.mes;
cout<<"Ingrese el Año:";
cin>>x.year;
}

void Print(FechaNacimiento x)
{ short int edad;
cout<<"Mi fecha de Nacimiento es:”;
Cout<<Fecha.dia<<"/"<<Fecha.mes<<"/"<<Fecha.year<<endl;
edad=2002-Fecha.year;
cout<<"En este año tengo o cumplire:"<<edad<<" años"<<endl;
}

Algoritmos y Programación Ing. Felix Huari Evangelista


3/7

int main()
{
FechaNacimiento Fecha;
Lectura(Fecha);
Print(Fecha);
}

Ejem 4
#include <iostream>
using namespace std;
struct fing
{ int dd,mm,aa;
};

struct reg
{ char codigo[10],nombre[25],cargo[15];
float sueldo;
fing fecha;
};
// Definiendo las funciones
void Leer(reg &T)
{ cout<<"Codigo:";
cin.getline(T.codigo,8);
cout<<"Nombres:";
cin.getline(T.nombre,25); cout<<"Cargo:"; cin.getline(T.cargo,15);
cout<<"Sueldo:";cin>>T.sueldo;
cout<<"Fecha Ingreso\n";
cout<<"Dia:";cin>>T.fecha.dd; cout<<"Mes:";cin>>T.fecha.mm;
cout<<"Año:";cin>>T.fecha.aa;
}

void Ver(reg T)
{ cout<<"Codigo :"<<T.codigo<<endl;
cout<<"Nombres :"<<T.nombre<<endl;
cout<<"Cargo :"<<T.cargo<<endl;
cout<<"Sueldo :"<<T.sueldo<<endl;
cout<<"Fecha Ingreso\n";
cout<<"dd/mm/aa:"<<T.fecha.dd<<"/"<<T.fecha.mm<<"/"<<T.fecha.aa<<endl;
}

//Funcion principal
int main()
{ reg Ficha;
Leer(Ficha);
Ver(Ficha);
}

Algoritmos y Programación Ing. Felix Huari Evangelista


4/7

VECTOR DE ESTRUCTURA

Ejem 5
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
const int N=31; // Mes de Agosto tiene 31 dias
//Declarando la estructura
struct Reg
{ char NroPlaca[10],Marca[15],Color[15],FechaInfra[12],Distrito[25];
float MultaPagar;
};

// Definiendo el prototipo de funciones


void Lectura(Reg X[])
{ int i;
cout<<"LECTURA DE DATOS"<<endl;
for(i=0;i<N;i++)
{ cout<<"Datos para el Vehiculo "<<i+1<<endl;
cout<<"Numero de Placa :";fflush(stdin);gets(X[i].NroPlaca);
cout<<"Marca Vehiculo :";gets(X[i].Marca);
cout<<"Color Vehiculo :";gets(X[i].Color);
cout<<"Fecha Infraccion:";gets(X[i].FechaInfra);
cout<<"Distrito :";gets(X[i].Distrito);
cout<<"Multa a Pagar :";cin>>X[i].MultaPagar;
}
}

void VerDatos(Reg X[])


{
int i;
cout<<"MOSTRANDO DATOS PROCESADOS"<<endl;
cout<<"Nro Placa\tMarca Vehiculo\tColor Vehiculo\tFecha Infraccion\tDistrito\tPago Multa\n";
for(i=0;i<N;i++)
cout<<X[i].NroPlaca<<"\t"<<X[i].Marca
<<"\t"<<X[i].Color<<"\t"<<X[i].FechaInfra
<<"\t"<<X[i].Distrito<<"\t"<<X[i].MultaPagar<<endl;
}

void VerMarca(Reg X[],char xMarca[])


{
int i,cant=0;
cout<<"Nro Placa\tMarca Vehiculo\tColor Vehiculo\tFecha Infraccion\tDistrito\tPago Multa\n";
for(i=0;i<N;i++)
if(strcmp(X[i].Marca,xMarca)==0)
{ cout<<X[i].NroPlaca<<"\t"<<X[i].Marca

Algoritmos y Programación Ing. Felix Huari Evangelista


5/7

<<"\t"<<X[i].Color<<"\t"<<X[i].FechaInfra
<<"\t"<<X[i].Distrito<<"\t"<<X[i].MultaPagar<<endl;
cant++;
}
if(cant==0)
cout<<"No existe la marca que busca"<<endl;
else
cout<<cant<<" Vehiculos de la marca "<<xMarca<<" encontradas"<<endl;
}

void VehiMultaMayor(Reg X[])


{ int i=0,j=0;
float Mayor;
Mayor=X[0].MultaPagar;
for(i=1;i<N;i++)
{ if(X[i].MultaPagar>Mayor)
{ j=i;
Mayor=X[i].MultaPagar;
}
}
if(j!=0)
{
cout<<"Nro Placa\tMarca Vehiculo\tColor Vehiculo\tFecha Infraccion\tDistrito\tPago Multa\n";
cout<<X[j].NroPlaca<<"\t"<<X[j].Marca
<<"\t"<<X[j].Color<<"\t"<<X[j].FechaInfra
<<"\t"<<X[j].Distrito<<"\t"<<X[j].MultaPagar<<endl;
}
else
cout<<" Todos los vehiculos tienen igual multa a pagar\n";
}

//Programa principal
int main()
{ Reg A[N];
char rmarca[15];
Lectura(A);
VerDatos(A);
cout<<"Marca de Vehiculo:";gets(rmarca);
VerMarca(A,rmarca);
VehiMultaMayor(A);
}

Algoritmos y Programación Ing. Felix Huari Evangelista


6/7

EJERCICIOS PROPUESTOS
1. Escribir un programa que permita generar una estructura llamada Number
que tienes 2 campos, uno tipo entero y la otra de tipo cadena. En el primer
campo se almacena un número entero en base decimal y en el campo
cadena se almacena su equivalente en numeración romana. Implementar
las funciones necesarias y el programa principal.
2. Escribir un programa que almacene un número entero y en base a este
debe generar su equivalente binario, octal y hexadecimal. El dato de
entrada y la que se genere debe guardarse en los campos de una
estructura. Finalmente escribir el contenido de cada campo de la estructura.
3. Dado una estructura llamada Alumno cuyos campos son los siguientes:
código de 8 caracteres, apellidos y nombres de 35 caracteres, practica 1,
practica 2 y practica 3 todos ellos son enteros, promedio es un entero que
almacena el promedio y observación almacena el mensaje de “Aprobado” o
“Desaprobado” en función del valor del promedio. Para cálculo del promedio
debe hacer la sumatoria de sus 3 prácticas dividido entre 3. Por ejemplo si
el promedio es 13.65, el resultado es 14, si el promedio es 13.35, el
promedio resultante es 13. Implementar todas las funciones que crea
conveniente y el programa principal.
4. Se almacena en una estructura padre llamada FechaActual el dia, mes y
año de una determinada fecha (validar). En base a este crear la fecha hija
llamada FechaSiguiente que tiene también la misma cantidad de campos
que la estructura original. En la nueva estructura debe almacenar la fecha
del dia siguiente. Implementar las funciones que crea conveniente para
conseguir lo que se requiere.
5. Escribir un programa que acepte la entrada de un número entero positivo,
para luego mostrar el mismo en letras. Usar estructura.
6. Dado una estructura llamada Fecha que tiene los campos dia y año tipo
entero y el mes como una cadena. Se pide escribir un programa que acepte
la entrada de datos de una fecha (validado) en el formado dd, mm y aaaa
todos como números enteros para luego almacenar en los campos de la
estructura. Finalmente mostrar la información de la estructura.
7. Un médico almacena en una estructura llamada Pacientes la siguiente
información: Nombre, dirección, teléfono, fecha de nacimiento, fecha de
consulta, pago, si tiene alergias o no y observaciones. Se pide lo siguiente:
 Ingresar los datos para n pacientes.
 Mostrar toda la información por cada paciente y para los n pacientes
procesados.
 Mostrar solo los pacientes que presenta alergias.
 Listar todos los pacientes menores de 7 años.
 Mostrar todos los paciente cuyo nombre inicie con la letra “C”
 Mostrar el monto total recaudado en un determinado mes, para ello
debe ingresar el mes que quiere consultar.
8. Dado un vector de cadenas que almacena código y las tres notas para un
grupo de N alumnos, donde cada dato está separado por un espacio en

Algoritmos y Programación Ing. Felix Huari Evangelista


7/7

blanco. Se pide implementar un programa para copiar cada uno de estos


datos en una estructura llamada datAlumno, por lo que la estructura debe
tener 4 campos, siendo el ultimo campo llamado prom. En este campo debe
almacenar el promedio redondeado. Las notas deben ser de tipo entero.
Finalmente mostrar el vector de cadenas y también los datos de la
estructura.

Algoritmos y Programación Ing. Felix Huari Evangelista

También podría gustarte