You are on page 1of 9

1

[code lang=cpp]
/*estructura es un tipo de dato compuesto que me va a permitir definir
variables
o arreglos */
/* Guardar en una estructura los datos de alumno como; codigo, nombre,
practica1
, practica2,promedio de practica, examen parcial,examen final y
promedio final*/
#include <iostream.h>
#include <stdlib.h>
struct alumno {
char codigo[8], nombre[40];
int p1, p2, pp, ep, ef, prom;
} a;
int main()
{
cout<<"Ingresar codigo: ";
cin>>a.codigo;
cout<<"Ingresar nombre: ";
cin>>a.nombre;
cout<<"Ingresar practica 1: ";
cin>>a.p1;
cout<<"Ingresar practica 2: ";
cin>>a.p2;
cout<<"Ingresar examen parcial: ";
cin>>a.ep;
cout<<"Ingresar examen final: ";

cin>>a.ef;
a.pp=(a.p1+a.p2)/2;
a.prom=(a.pp+a.ep+a.ef)/3;
cout<<"El promedio final de "<<a.nombre<<" es "<<a.prom<<endl;
system("PAUSE");
return 0;
}

2
#include <stdio.h>
#include <string.h>
/* creamos nuestra estructura con datos similares */
struct infopersona
{
char direccion[25];
char ciudad[20];
char provincia[20];
long int codigo_postal;
}; /* las estructuras necesitan punto y coma (;) al final */
/* creamos nuestra estructura empleado */
struct empleado
{
char nombre_empleado[25];
/* agregamos la estructura infopersona
* con nombre direcc_empleado
*/
struct infopersona direcc_empleado;
double salario;
}; /* las estructuras necesitan punto y coma (;) al final */
/* creamos nuestra estructura cliente */
struct cliente
{
char nombre_cliente[25];
/* agregamos la estructura infopersona
* con nombre direcc_cliente
*/
struct infopersona direcc_cliente;
double saldo;
}; /* las estructuras necesitan punto y coma (;) al final */
int main(void)

{
/* creamos un nuevo cliente
struct cliente MiCliente;

*/

/*inicializamos un par de datos de Micliente */


strcpy(MiCliente.nombre_cliente,"Jose Antonio");
strcpy(MiCliente.direcc_cliente.direccion, "Altos del Cielo");
/* notese que se agrega direcc_cliente haciendo referencia
* a la estructura infopersona por el dato direccion
*/
/* imprimimos los datos */
printf("\n Cliente: ");
printf("\n Nombre: %s", MiCliente.nombre_cliente);
/* notese la forma de hacer referencia al dato */
printf("\n Direccion: %s",
MiCliente.direcc_cliente.direccion);
/* creamos un nuevo empleado
struct empleado MiEmpleado;

*/

/*inicializamos un par de datos de MiEmplado */


strcpy(MiEmpleado.nombre_empleado,"Miguel Angel");
strcpy(MiEmpleado.direcc_empleado.ciudad,"Madrid");
/* para hacer referencia a ciudad de la estructura infopersona
* utilizamos direcc_empleado que es una estructura anidada
*/
/* imprimimos los datos */
printf("\n");
printf("\n Empleado: ");
printf("\n Nombre: %s", MiEmpleado.nombre_empleado);
/* notese la forma de hacer referencia al dato */
printf("\n Ciudad: %s", MiEmpleado.direcc_empleado.ciudad);
return 0;
}

3
#include <stdio.h>
#include <string.h>
/*Creamos una union*/
union frases
{
char mensajes[50];
char ayudas[50];
char lineas[50];
} palabra;
/*Creamos una estructura*/
struct comparte
{
char mensajes[50];
char ayudas[50];
char lineas[50];
}Sistema;

/*Ntese que la estructura y la union tienen los mismos tipos de


datos*/
int main(int argc, char** argv)
{
/*Inicializamos*/
strcpy(palabra.mensajes, "Primer Mensaje");
/*Inicializamos*/
strcpy(palabra.ayudas, "Una Ayuda");
printf("\nFrases en Union: ");
/*Imprimimos mensajes de union*/
printf("\n1- %s", palabra.mensajes);
/*Imprimimos ayudas de union*/
printf("\n2- %s", palabra.ayudas);
/*Inicializamos*/
strcpy(Sistema.mensajes, "Primer Mensaje");
/*Inicializamos*/
strcpy(Sistema.ayudas, "Una Ayuda");
/* Podemos notar que aunque inicializamos los valores
* al imprimir se tiene el mismo valor para cada miembro
* de la estructura, esto se debe a que las uniones usan el
* mismo espacio de memoria para todos los elementos
* de la union, siendo del tamao de su miembro de
* mayor tamao, en este caso 50 bytes.
* Entonces los tres miembros creados dentro de la
* union comparten esos 50 bytes.
* Entonces el ultimo valor agregado a la union es
* el que se tiene.
*/
printf("\n\nFrases en Struct: ");
/*Imprimimos mensajes de struct*/
printf("\n1- %s", Sistema.mensajes);

/*Imprimimos ayudas de union*/


printf("\n2- %s", Sistema.ayudas);
/* En la estructura comparte, se reservan 150 bytes
* de memoria para los tres miembros, en este caso
* cada uno es independiente en memoria, asi pues se
* puede inicializar cada uno o usar como un campo
* independiente.
*/
return 0;
}

4
#include <iostream>
using namespace::std;
struct Datos
{
// Estos datos no se pueden
// inicializar
int anio;
int mes;
int dia;
};
// Prototipos de funcion
void Recibe( Datos &s);
void Imprime1( Datos &t);
void Imprime2( Datos Nacimiento);
/////////////////////////////////////////////////////////////
// MAIN
/////////////////////////////////////////////////////////////
int main()
{
// Abre main
// Declaracion de Elisa como tipo Datos
Datos Elisa;
// Se reciben los datos de Elisa mediante la funcion Recibe
Recibe(Elisa);
// Se imprimen los datos de Elisa desde la funcion Imprime1
cout <<"\nLa fecha de nacimiento de Elisa desde Imprime1: "<<endl;
Imprime1(Elisa);
// Se imprimen los datos de Elisa desde la funcion Imprime2
cout <<"\nLa fecha de nacimiento de Elisa desde Imprime2:" <<endl;
Imprime2(Elisa);
// Se imprimen los datos de Elisa desde main
cout <<"\nLa fecha de nacimiento de Elisa desde main." <<endl;
cout <<Elisa.dia<<"/" <<Elisa.mes<< "/" << Elisa.anio << endl << endl;
return 0;
}
// Cierra main
/////////////////////////////////////////////////////////////////
// RECIBE
////////////////////////////////////////////////////////////////
void Recibe( Datos &s)
{
// Abre funcion Recibe
cout << "\nIntroduzca el anio de nacimiento: " <<endl;
cin >> s.anio;
cout << "\nIntroduzca el mes de nacimiento: " <<endl;

cin >> s.mes;


cout <<"\nIntroduzca el dia de nacimiento: " <<endl;
cin >> s.dia;
}
// Cierra funcion Recibe
////////////////////////////////////////////////////////////////
// IMPRIME1
////////////////////////////////////////////////////////////////
void Imprime1( Datos &t)
{
// Abre Imprime
cout <<t.dia <<"/"<<t.mes<<"/"<<t.anio<<endl;
return;
}
// Cierra Imprime
////////////////////////////////////////////////////////////////
// IMPRIME2
////////////////////////////////////////////////////////////////
void Imprime2( Datos Nacimiento)
{ // Abre
cout << Nacimiento.dia <<"/" <<Nacimiento.mes<<"/"<< Nacimiento.anio << endl;
return;
}

You might also like