Você está na página 1de 81

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA


U.ZACATENCO
PROGRAMACION ORIENTADA A OBJETOS

PRIMER REPORTE UNIDAD I Y II


Profesor: Torres Sabino Manuel
Grupo: 2AM2
Integrantes:

Salazar Bravo Luis Alberto

Moreno Prieto Vctor Mario

lvarez Gmez Luis Alberto

INTRODUCCION:
En la actualidad existe un sinfn de lenguajes de programacin. Estos han sido de suma
importancia para los avances tecnolgicos en el mundo.
Entre estos lenguajes se encuentra C++, que es el sucesor de C, en este documento
datamos caractersticas de este lenguaje.
Abordara los temas de:

Estructuras (struct)
Uniones (union)
Clases (class)

Como principales caractersticas de estos temas tenemos:


Estructuras: Una estructura de datos es una manera de almacenar y organizar datos para
facilitar el acceso y modificaciones. No hay una estructura de datos que sirva para todos
los propsitos, y por eso es importante saber sus ventajas y desventajas.
Uniones: las uniones eran utilizadas anteriormente para el ahorro de memoria dinmica
en los programas, ya que suele utilizar un solo espacio de memoria para todas las
variables declaradas en su interior, siempre asigna el espacio ms grande determinado por
los tipo de dato que se emplean en ese momento.
Clases: En esencia, una clase en C++ es una estructura en el estilo de C con algunas
ventajas sencillas pero muy potentes. Cuando se declara una clase en C++, no se reserva
memoria para la clase hasta que se crea un objeto de la clase.

INSTITUTO POLITECNICO NACIONAL


ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
U.ZACATENCO
PROGRAMACION ORIENTADA A OBJETOS

PRIMEROS PROGRAMAS UNIDAD II


Profesor: Torres Sabino Manuel
Grupo: 2AM2
Integrantes:

Salazar Bravo Luis Alberto

Moreno Prieto Vctor Mario

lvarez Gmez Luis Alberto

1.- Funciones matemticas


Escribir: Bienvenido Qu deseas evaluar?
Opc 1: SENO HIPERBOLICO
Opc2 REDONDEO A UN NUMERO MAYOR
Opc3: REDONDEO A UN NUMERO MENOR
Opc4: VALOR ABSOLUTO
Opc5: RAIZ CUBICA
Opc6: RAIZ CUADRADA
Opc7: POTENCIA
Opc8: EXPONENCIAL
Opc9: LOGARITNMO NATURAL
Opc 10: LOGARITMO BASE 10
Opc 11: SENO
Opc 12: COSENO
Opc 13: TANGENTE
Opc 14: ARCO TANGENTE DE X,Y
Opc 15: RESTO DE LA DIVISION
Tecela la opcin que desees evaluar:
Leer: opc
Segn opc hacer:
FinProceso

SubProceso re<-SENO HIPERBOLICO(x)


Escribir 'Dame x'
Leer x
res=sinh(x);
Escribir El resultado es : res
FinSubProceso
SubProceso re<-REDONDEO A UN NUMERO MAYOR(x)
Escribir 'Dame x'
Leer x
res=ceil(x);
Escribir El resultado es : res
FinSubProceso
SubProceso re<-REDONDEO A UN NUMERO MENOR(x)
Escribir 'Dame x'
Leer x

res=floor(x);
Escribir El resultado es : res
FinSubProceso
SubProceso re<-VALOR ABSOLUTO(x)
Escribir 'Dame x'
Leer x
res=fabs(x);
Escribir El resultado es : res
FinSubProceso
SubProceso re<-RAIZ CUBICA(x)
Escribir 'Dame x'
Leer x
res=sbrt(x);
Escribir El resultado es : res
FinSubProceso
SubProceso re<-RAIZ CUADRADA(x)
Escribir 'Dame x'
Leer x
res=sqrt(x);
Escribir El resultado es : res
FinSubProceso
SubProceso re<-POTENCIA(x)
Escribir 'Dame x'
Leer x
Escribir 'Dame y'
Leer y
res=pow(x);
Escribir El resultado es : res
FinSubProceso
SubProceso re<-EXPONENCIAL(x)
Escribir 'Dame x'
Leer x
res=exp(x);
Escribir El resultado es : res
FinSubProceso
SubProceso re<-LOGARITNMO NATURAL(x)
Escribir 'Dame x'

Leer x
res=logn(x);
Escribir El resultado es : res
FinSubProceso
SubProceso re<-LOGARITMO BASE 10(x)
Escribir 'Dame x'
Leer x
res=log(x);
Escribir El resultado es : res
FinSubProceso
SubProceso re<-SENO(x)
Escribir 'Dame x'
Leer x
res=sin(x);
Escribir El resultado es : res
FinSubProceso

SubProceso re<-COSENO(x)
Escribir 'Dame x'
Leer x
res=cos(x);
Escribir El resultado es : res
FinSubProceso
SubProceso re<-TANGENTE(x)
Escribir 'Dame x'
Leer x
res=tan(x);
Escribir El resultado es : res
FinSubProceso
SubProceso re<-ARCO TANGENTE DE X,Y(x,y)
Escribir 'Dame x'
Leer x
Escribir 'Dame y'
Leer y
res=arctan(x,y);
Escribir El resultado es : res
FinSubProceso
SubProceso re<-RESTO DE LA DIVISION(x)
Escribir 'Dame x'
Leer x
Escribir 'Dame y'

Leer y
res=fmod(x,y);
Escribir El resultado es : res
FinSubProceso

Inicio

Bienvenido
Qu deseas evaluar?

1
3
5
7
9
11
13
15

SENO HIPERBOLICO
REDONDEO A UN NUMERO MENOR
RAIZ CUBICA
POTENCIA
LOGARITNMO NATURAL
SENO
TANGENTE
RESTO DE LA DIVISION

2
4
6
8
10
12
14

REDONDEO A UN NUMERO MAYOR


VALOR ABSOLUTO
RAIZ CUADRADA
EXPONENCIAL
LOGARITMO BASE 10
COSENO
ARCO TANGENTE DE X,Y

Teclea la opcin que desees evaluar:

Resto de la divisin

SENO HIPERBOLICO
opc

Arco tangente()

RED AL MAYOR

Seno()

RED AL MENOR

Tangente()

VALOR ABSOLUTO
opc

Coseno()

RAZ CUBICA

Logaritmo base 10

RAZ CUADRADA

Log bas
Logaritmo natural

Potencia
Exponencial

Seno hiperblico

Redondeo al num mayor

Redondeo al num menor

Dame X

Dame X

Dame X

res=sinh(x);

res=ceil(x);

res=floor(x);

Valor absoluto

Raz cbica

Raz cuadrada

Dame X

Dame X

Dame X

res=fabs(x);

res=cbrt(x);

res=sqrt(x);

Potencia

Exponencial

Logaritmo natural

Dame X y Y

Dame X

Dame X

X,Y

res=pow(x,y);

res=exp(x);

res=log(x);

Logaritmo base 10

Seno

Coseno

Dame X

Dame X

Dame X

res=log10(x);

res=sin(x*PI/180);

res=cos(x*PI/180);

Tangente

Arco tangente de X,Y

Resto de la division

Dame X

Dame X y Y

Dame X y Y

X,Y

X,Y

res=tan(x*PI/180);

res=atan2(x,y)*180/PI;

res=fmod(x,y);

Cdigo
/*Programa 1
Programa que realiza calculosmatematicos y se emplean funciones de la
biblioteca <cmath>
ICA
2AM2
Fundamentos de programacin orientada a objetos
*/
#include<iostream>
#include<cstdlib>
#include<cmath>//Biblioteca que permite el uso de funciones de la libreria<cmath>
#define PI 3.1415926//Definicion del valor PI como constante
usingnamespacestd;
intopc;
floatx,y,res;
//PROTOTIPOS
floatsenohi(float x);
floatredonmayor (float x );
floatredonmenor (float x );
floatvalabs(float x);
float raiz3(float x);
floatraiz(float x);
intpot(int x, int y);
float expo(float x);
float logan(float x);
float loga10(float x);
float seno(float x);
float coseno(float x);
float tangente(float x);
floatarctangxy(floatx,float y);
floatresdiv(float x, float y);
intmain()
{
cout<<"\n\t\t\t\tBienvenido\n\n"<<endl;//Imprime en pantalla, endl funciona como fin
de instruccin y salto de linea
cout<<"\tQue deseas evaluar?\n\n";
cout<<"\n\t1 SENO HIPERBOLICO\n\t2 REDONDEO A UN NUMERO
MAYOR\n\t3 REDONDEO A UN NUMERO MENOR\n\t4 VALOR
ABSOLUTO\n\t5 RAIZ CUBICA";
cout<<"\n\t6 RAIZ CUADRADA\n\t7 POTENCIA\n\t8 EXPONENCIAL\n\t9
LOGARITNMO NATURAL\n\t10 LOGARITMO BASE 10";
cout<<"\n\t11 SENO\n\t12 COSENO\n\t13 TANGENTE\n\t14 ARCO
TANGENTE DE X,Y\n\t15 RESTO DE LA DIVISION";

cout<<"\n\n\tTeclea la opcion que desees evaluar: ";


cin>>opc;
switch(opc){
case 1:
res=senohi(x);
break;
case 2:
res=redonmayor(x);
break;
case 3:
res=redonmenor(x);
break;
case 4:
res=valabs(x);
break;
case 5:
res=raiz3(x);
break;
case 6:
res=raiz(x);
break;
case 7:
res=pot(x,y);
break;
case 8:
res=expo(x);
break;
case 9:
res=logan(x);
break;
case 10:
res=loga10(x);
break;
case 11:
res=seno(x);
break;
case 12:
res=coseno(x);
break;
case 13:
res=tangente(x);
break;
case 14:
res=arctangxy(x,y);
break;
case 15:
res=resdiv(x,y);

break;
default:
system("cls");
cout<<"\nNo elegiste opcion \n";
}
return (0);
}
/*SENO HIPERBOLICO*/
floatsenohi(float x)
{system("cls");
cout<<"\n\nDame x: ";
cin>>x;
res=sinh(x);
cout<<"\nEl resultado del seno hiperbolico de "<<x<<" es: "<<res<<"\n"<<endl;}
/*REDONDEO AL NUMERO MAYOR*/
floatredonmayor (float x )
{system("cls");
cout<<"\n\nDame x: ";
cin>>x;
res=ceil(x);//Redondeo al numero mayor entero ms cercano
cout<<"\nNumero a redondear: "<<x<<"\nNumero redondeado: "<<res<<endl;}
/*REDONDEO AL NUMERO MENOR*/
floatredonmenor (float x )
{system("cls");
cout<<"\n\nDame x: ";
cin>>x;
res=floor(x);//Redondeo al numero menor entero ms cercano
cout<<"\nNumero a redondear: "<<x<<"\nNumero redondeado: "<<res<<endl;}
/*VALOR ABSOLUTO*/
floatvalabs(float x)
{system("cls");
cout<<"\n\nDame x: ";
cin>>x;
res=fabs(x);
cout<<"\nNumero ingresado: "<<x<<"\nValorabsoulto: "<<res<<endl;}
/*RAZ CUBICA*/
float raiz3(float x)
{system("cls");
cout<<"\n\nDame x: ";
cin>>x;
res=cbrt(x);
cout<<"\nEl resultado de la raiz cubica de "<<x<<" es: "<<res<<"\n"<<endl;}

/*RAZ CUADRADA*/
floatraiz(float x)
{system("cls");
cout<<"\n\nDame x: ";
cin>>x;
res=sqrt(x);
cout<<"\nEl resultado de la raiz cuadrada de "<<x<<" es: "<<res<<"\n"<<endl;}
/*POTENCIA*/
intpot(intx,int y)
{system("cls");
cout<<"\n\nDame x: ";
cin>>x;
cout<<"\nDame y: ";
cin>>y;
res=pow(x,y);
cout<<"\nEl resultado de la potencia de "<<x<<" elevado a "<<y<<" es:
"<<res<<"\n"<<endl;}
/*EXPONENCIAL*/
float expo(float x)
{system("cls");
cout<<"\n\nDame x: ";
cin>>x;
res=exp(x);
cout<<"\nEl resultado de e elevado a "<<x<<" es: "<<res<<"\n"<<endl;}
/*LOGARITMO NATURAL*/
float logan(float x)
{system("cls");
cout<<"\n\nDame x: ";
cin>>x;
res=log(x);
cout<<"\nEl resultado del logaritmo natural de "<<x<<" es: "<<res<<"\n"<<endl;}
/*LOGARITMO BASE 10*/
float loga10(float x)
{system("cls");
cout<<"\n\nDame x: ";
cin>>x;
res=log10(x);
cout<<"\nEl resultado del logaritmo base 10 de "<<x<<" es: "<<res<<"\n"<<endl;}
/*SENO*/
float seno(float x)
{system("cls");
cout<<"\n\nDame x: ";

cin>>x;
res=sin(x*PI/180);
cout<<"\nEl resultado del seno de "<<x<<" es: "<<res<<"\n"<<endl;}
/*COSENO*/
float coseno(float x)
{system("cls");
cout<<"\n\nDame x: ";
cin>>x;
res=cos(x*PI/180);
cout<<"\nEl resultado del coseno de "<<x<<" es: "<<res<<"\n"<<endl;}
/*TANGENTE*/
float tangente(float x)
{system("cls");
cout<<"\n\nDame x: ";
cin>>x;
res=tan(x*PI/180);
cout<<"\nEl resultado de la tangente de "<<x<<" es: "<<res<<"\n"<<endl;}
/*ARCO TANGENTE DE X,Y*/
floatarctangxy(floatx,float y)
{system("cls");
cout<<"\n\nDame x: ";
cin>>x;
cout<<"\nDame y: ";
cin>>y;
res=atan2(x,y)*180/PI;
cout<<"\nEl resultado del arco tangente de "<<x<<","<<y<<" es:
"<<res<<"\n"<<endl;}
/*RESTO DE LA DIVISIN*/
//Calcula el resto de la divisin de x entre y. El valor devuelto es x n * y, donde n
es el cociente de x / y.
floatresdiv(float x, float y)
{system("cls");
cout<<"\n\nDame x: ";
cin>>x;
cout<<"\nDame y: ";
cin>>y;
res=fmod(x,y);
cout<<"\nEl resultado del resto de la division de "<<x<<"/"<<y<<" es:
"<<res<<"\n"<<endl;}

Al inicio del programa se despliega un men con varias opciones matemticas a


evaluar y se pide que digites la opcin que deseas evaluar

Si seleccionas la opcin 6 corresponde a calcular la raz cuadrada de un nmero

Tecleamos 64 para que evale su raz cuadrada, la respuesta es 8

PROGRAMA 2. DATOS DE UNA MATRIZ


PSEUDOCODIGO
Proceso MATRIZ
Escribir "IMPRESION DE DATOS DE UNA MATRIZ"
void<-matriz(i,j)
void<-matrizdatos(i,j)
void<-matriz(i,j)
FinProceso
SubProcesovoid<- matriz(i,j)
DimensionA[10][4];
Para i<-1 Hasta 10 Con Paso 1 Hacer
Para j<-1 Hasta 4 Con Paso 1 Hacer
Escribir A[i][j]

Fin Para
Fin Para
Fin SubProceso
SubProcesovoid<- matrizdatos(i,j)
DimensionA[10][4];
Para i<-1 Hasta 10 Con Paso 1 Hacer
Para j<-1 Hasta 4 Con Paso 1 Hacer
Escribir "Digite la posicion ",i,",",j," : ";
Leer A[i][j]
Fin Para
Fin Para
Fin SubProceso

CODIGO
/*Programa 2
Programa que imprime los datos de una matriz
ICA
2AM2
Programacin orientada a objetos
*/
#include<iostream>
#include<cstdio>
#include<cstdlib>
usingnamespacestd;
int matriz (inti,int j);
//PROTOTIPOS. Funcion 1
intmatrizdatos (inti,int j); //PROTOTIPOS. Funcion 2
int A[10][4],i,j; //VARIABLES GLOBALES
intmain()
{
cout<<"\n\n\tIMPRESION DE DATOS DE UNA MATRIZ\n\n";
matriz(i,j);
//llamada de funcion 1. Imprime los datos inicializados en cero

matrizdatos(i,j);
//llamada de funcion 2. Se ingresan valores a la matriz
matriz(i,j);
//llamada de funcion 1. Se imprimen los valores ingresados
system("cls");
}

int matriz (inti,int j) //SUBPROCESO 1


{
for(i=1;i<=10;i++) //Numero de filas
{
for(j=1;j<=4;j++) //Numero de columnas
cout<<"\t"<<A[i][j]; //Impresion de datos
cout<<endl;
}
system("pause>nul");
system("cls");
}
intmatrizdatos (inti,int j) //SUBPROCESO 2
{
for(i=1;i<=10;i++) //Numero de filas
{
for(j=1;j<=4;j++) //Numero de columnas
{
cout<<"Digite la posicion "<<i<<","<<j<<" : ";
cin>>A[i][j]; //Ingreso de datos
}
cout<<"\n";
}
}

RESULTADOS

1.- Aqu se imprimen los datos de la matriz inicializados en cero, se observa la


matriz con una dimensin de 10 filas y 4 columnas

2.- Se ingresa por teclado un total de 40 valores en la matriz

3.- Se imprimen los valores introducidos por teclado

PROGRAMA 4.CONTADOR DE DIAS DESDE EL 1 DE ENERO


PSEUDOCODIGO
Proceso Contador_De_Dias
Ene<-31
Feb<-59
Mar<-90
Abr<-120
May<-151
Jun<-181
Jul<-212
Ago<-243
Sep<-273
Oct<-304
Nov<-334
Dic<-365
Escribir "Dame la fecha actual (dd/mm/aa)"
Escribir 'DIA'
Leer x
Escribir 'MES'
Leer yy
Escribir 'AO'
Leer z
Segunyy Hacer
opcion_1:

Para n<-x Hasta Ene Con Paso 1 Hacer


res<-n
Escribir "Los dias transcurridos desde el 01/Enero/2015
son:"
Escribir res
Fin Para
opcion_2:
Para n<-x Hasta Feb Con Paso 1 Hacer
res<-Ene+n
Escribir "Los dias transcurridos desde el 01/Enero/2015
son:"
Escribir res
Fin Para
opcion_3:
Para n<-x Hasta Mar Con Paso 1 Hacer
res<-Feb+n
Escribir "Los dias transcurridos desde el 01/Enero/2015
son:"
Escribir res
Fin Para
opcion_4:
Para n<-x Hasta Abr Con Paso 1 Hacer
res<-Mar+n
Escribir "Los dias transcurridos desde el 01/Enero/2015
son:"
Escribir res
Fin Para
opcion_5:
Para n<-x Hasta May Con Paso 1 Hacer
res<-Abr+n
Escribir "Los dias transcurridos desde el 01/Enero/2015
son:"
Escribir res
Fin Para
opcion_6:
Para n<-x Hasta Jun Con Paso 1 Hacer
res<-May+n
Escribir "Los dias transcurridos desde el 01/Enero/2015
son:"
Escribir res
Fin Para

opcion_7:
Para n<-x Hasta Jul Con Paso 1 Hacer
res<-Jun+n
Escribir "Los dias transcurridos desde el 01/Enero/2015
son:"
Escribir res
Fin Para
opcion_8:
Para n<-x Hasta Ago Con Paso 1 Hacer
res<-Jul+n
Escribir "Los dias transcurridos desde el 01/Enero/2015
son:"
Escribir res
Fin Para
opcion_9:
Para n<-x Hasta Sep Con Paso 1 Hacer
res<-Ago+n
Escribir "Los dias transcurridos desde el 01/Enero/2015
son:"
Escribir res
Fin Para
opcion_10:
Para n<-x Hasta Oct Con Paso 1 Hacer
res<-Sep+n
Escribir "Los dias transcurridos desde el 01/Enero/2015
son:"
Escribir res
Fin Para
opcion_11:
Para n<-x Hasta Nov Con Paso 1 Hacer
res<-Oct+n
Escribir "Los dias transcurridos desde el 01/Enero/2015
son:"
Escribir res
Fin Para
opcion_12:
Para n<-x Hasta Dic Con Paso 1 Hacer
res<-Nov+n
Escribir "Los dias transcurridos desde el 01/Enero/2015
son:"
Escribir res
Fin Para

De Otro Modo:
Escribir "ERROR"
Fin Segun
FinProceso

CODIGO
/*Programa 4
Programa que imprime los datos de una matriz
ICA
2AM2
Programacin orientada a objetos
*/
#include<iostream>
#include<cstdio>
#include<cstdlib>
usingnamespacestd;
//DECLARACION DE CONSTANTES
#define Ene 31 //total de dias del mes de enero
#define Feb 59 //total de dias del mes de febrero mas los dias de enero
#define Mar 90 //total de dias del mes de marzo mas los dias de los meses anteriores
#define Abr 120 //total de dias del mes de abril mas los dias de los meses anteriores
#define May 151 //total de dias del mes de abril mas los dias de los meses anteriores
#define Jun 181 //total de dias del mes de mayo mas los dias de los meses anteriores
#define Jul 212 //total de dias del mes de junio mas los dias de los meses anteriores
#define Ago 243 //total de dias del mes de agosto mas los dias de los meses anteriores
#define Sep 273 //total de dias del mes de septiembre mas los dias de los meses anteriores
#define Oct 304 //total de dias del mes de octubre mas los dias de los meses anteriores
#define Nov 334 //total de dias del mes de noviembre mas los dias de los meses anteriores
#define Dic 365 //total de dias del mes de diciembre mas los dias de los meses anteriores
//VARIABLES GLOBALES
intx,y,z,n,res;
intmain()
{
cout<<"Bienvenido\nPrograma que cuenta los dias transcurridos de este anio\nDame la
fecha actual (dd/mm/aa)\n";

cout<<"Dia :";cin>>x; //se ingresa el dia


cout<<"Mes :";cin>>y; //se ingresa el mes
cout<<"Anio :";cin>>z; //se ingresa el ao
switch(y)
{
case 01:
for(Ene;n<=x;n++)
res=n;
cout<<"\nLosdias transcurridos desde el 01/Enero/2015 son: "<<res<<endl;
break;
case 02:
for(Feb;n<=x;n++)
res=Ene+n;
cout<<"\nLosdias transcurridos desde el 01/Enero/2015 son: "<<res<<endl;
break;
case 03:
for(Mar;n<=x;n++)
res=Feb+n;
cout<<"\nLosdias transcurridos desde el 01/Enero/2015 son: "<<res<<endl;
break;
case 04:
for(Abr;n<=x;n++)
res=Mar+n;
cout<<"\nLosdias transcurridos desde el 01/Enero/2015 son: "<<res<<endl;
break;
case 05:
for(May;n<=x;n++)
res=Abr+n;
cout<<"\nLosdias transcurridos desde el 01/Enero/2015 son: "<<res<<endl;
break;
case 06:
for(Jun;n<=x;n++)
res=May+n;
cout<<"\nLosdias transcurridos desde el 01/Enero/2015 son: "<<res<<endl;
break;
case 07:
for(Jul;n<=x;n++)

res=Jun+n;
cout<<"\nLosdias transcurridos desde el 01/Enero/2015 son: "<<res<<endl;
break;
case 8:
for(Ago;n<=x;n++)
res=Jul+n;
cout<<"\nLosdias transcurridos desde el 01/Enero/2015 son: "<<res<<endl;
break;
case 9:
for(Sep;n<=x;n++)
res=Ago+n;
cout<<"\nLosdias transcurridos desde el 01/Enero/2015 son: "<<res<<endl;
break;
case 10:
for(Oct;n<=x;n++)
res=Sep+n;
cout<<"\nLosdias transcurridos desde el 01/Enero/2015 son: "<<res<<endl;
break;
case 11:
for(Nov;n<=x;n++)
res=Oct+n;
cout<<"\nLosdias transcurridos desde el 01/Enero/2015 son: "<<res<<endl;
break;
case 12:
for(Dic;n<=x;n++)
res=Nov+n;
cout<<"\nLosdias transcurridos desde el 01/Enero/2015 son: "<<res<<endl;
break;
}
}

RESULTADOS

1.- Se solicitan datos a introducirlos desde teclado, los cuales son dia, mes y ao
actual.

2.- Se imprime el total de das transcurridos desde el 1 de enero de ste ao,


hasta la fecha actual.

INSTITUTO POLITECNICO NACIONAL


ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
U.ZACATENCO
PROGRAMACION ORIENTADA A OBJETOS

ESTRUCTURAS:
Profesor: Torres Sabino Manuel
Grupo: 2AM2
Integrantes:

Salazar Bravo Luis Alberto

Moreno Prieto Vctor Mario

lvarez Gmez Luis Alberto

(struct)

OBJETIVO:
Desarrollar mltiples programas utilizando estructuras as miso debern hacer uso de los
objetos de la estructura, adems el operador punto para relacionar a los objetos con los
atributos de la estructura.

FUNDAMENTO TEORICO
Qu es una estructura (struct)?
Una estructura es un tipo de dato compuesto que permite almacenar un conjunto de
datos de diferente tipo. Los datos que contiene una estructura pueden ser de tipo simple
(caracteres, nmeros enteros o de coma flotante etc.) o a su vez de tipo compuesto
(vectores, estructuras, listas, etc).
A cada uno de los datos o elementos almacenados dentro de una estructura se les
denomina miembros de esa estructura y stos pertenecern a un tipo de dato
determinado.
Una estructura contiene varios datos. La forma de definir una estructura es haciendo uso
de la palabra clave struct.
Una estructura puede estar dentro de otra estructura a esto se le conoce como
anidamiento o estructuras anidadas. Ya que se trabajan con datos en estructuras si
definimos un tipo de dato en una estructura y necesitamos definir ese dato dentro de otra
estructura solamente se llama el dato de la estructura anterior.
Una estructura es un grupo de variables las cuales pueden ser de diferentes tipos
sostenidas o mantenidas juntas en una sola unidad. La unidad es la estructura.
Sintaxis y reglas para estructuras en C++ En C++ se forma una estructura utilizando la
palabra reservada struct, seguida por un campo etiqueta opcional, y luego una lista de
miembros dentro de la estructura. La etiqueta opcional se utiliza para crear otras variables
del tipo particular de la estructura:
Struct campo_etiqueta
{
tipo_miembro miembro_1;
tipo_miembro miembro_2;
15 tipo_miembro miembro_3;

tipo_miembro miembro_n; };
Un punto y coma finaliza la definicin de una estructura puesto que esta es realmente
una sentencia C/C++ . Algunos de los ejemplos usan la estructura:
struct stbarco
{
char sztipo[iString15+iNull_char];
char szmodelo[iString15+iNull_char];
char sztitular[iString20+iNull_char];
Int ianio;
long int lhoras_motor;
float fprecioventa;

};

En un programa, podemos asociar una variable con una estructura utilizando una
sentencia similar a la siguiente:
struct stbarco stbarco_usado;
La sentencia define stbarco_usado de tipo struct stbarco. La declaracin requiere el uso
del campo etiqueta de la estructura. Si esta sentencia est contenida dentro de una
funcin, entonces la estructura, llamada stbarco_usado, tiene un mbito local a esa
funcin. Si la sentencia est contenida fuera de todas las funciones de programa, la
estructura tendr un mbito global. Es posible declarar una variable usando esta sintaxis:
struct stbarco{
Char sztipo [iString15+iNull_char];
Char szmodelo [iString15+iNull_char];
Char sztitular [iString20+iNull_char];
Int ianio;
Long int lhoras_motor;
Float fprecioventa;

} stbarco_usado;
Aqu la declaracin de variable va antes del punto y coma final. Cuando se asocia solo una
variable con el tipo estructura, el campo etiqueta puede ser eliminado, por lo que ser a
posible escribir:
Struct {
char sztipo[iString15+iNull_char];
char szmodelo[iString15+iNull_char];
16 char sztitular[iString20+iNull_char];
int ianio;
long int lhoras_motor;
float fprecioventa;
} stbarco_usado;

Utilizacin de miembros de estructuras


Para acezar a los miembros de las estructuras se usa el punto u operador miembro ( ). La
sintaxis es:
estructuraNombre.miembroNombre
Por ejemplo en:
gets(stbarco_usado.szmodelo);
Aqu, stbarco_usado es el nombre asociado con la estructura, y szmodelo es una variable
miembro de la estructura, otro ejemplo:
std::cin>> stbarco_usado.sztipo;
Esta sentencia leera la marca del stbarco_usado en el arreglo de caracteres, mientras la
prxima sentencia imprimir el precio de venta de stbarco_usado en la pantalla.
srd::cout<< stbarco_usado.fprecioventa;
//////////////////////////////////////////////////////////////////////////////////////////////

PROGRAMA 6. Calculo del Area de 3 Rectangulos con Apuntadores.


PSEUDOCODIGO
Proceso CalculoDelAreaDeTresRectangulos
DimensionR[3]
R[1]<-(b=1.0,h=2.0)
R[2]<-(b=3.5,h=4.5)
R[3]<-(b=5.1,h=6.2)
Escribir "BASE , ALTURA , AREA"
Para i<-1 Hasta 3 Con Paso 1 Hacer
Escribir " ",b
Escribir " ",h
Escribir " ",b*h
Fin Para
FinProceso

CODIGO
/*Programa 6

Programa que calcula el Area de 3 Rectangulos con Apuntadores.


ICA
2AM2
Programacin orientada a objetos
*/
#include<iostream>
#include<cstdio>
#include<cstdlib>
usingnamespacestd;
structRectangulos
{
float b; //Miembro de la estructura
float h; //Miembro de la estructura
}*pR; //Objeto
intmain()
{
//Creacion de otro objeto inicializado con valores asignados en un arreglo de 3 espacios

RectangulosR[3]={ {1.0,2.0},
{3.5,4.5},

{5.1,6.2} };
pR=R;
cout<<"BASE \t ALTURA \t AREA";
for (int i=1;i<=3;i++)
{
cout<<endl<<pR->b
<<"\t"<<pR->h
<<"\t"<<(pR->b)*(pR->h);
pR++;
}
cout<<"\n";
return 0;
}

RESULTADOS

1.- Se imprimen las dimensiones de tres rectngulos con sus respectivas areas

PROGRAMA 8. ESTRUCTURA DE UNA CASA

PSEUDOCODIGO
Proceso DATOS_DE_UNA_CASA
Escribir 'Impresion de datos de una casa'
void<-ingresar_datos_uno()
void<-imprimir_datos()
void<-nuevos_datos()
void<-imprimir_datos()
void<-otros_datos()
void<-imprimir_datos()
void<-ingresar_mas_datos()
void<-imprimir_datos()
void<-ult_datos()
void<-imprimir_datos()
FinProceso
SubProcesovoid<- ingresar_datos_uno ()
lugar="Recamaras";
cantidad=3;
area=45.08;
color="Blanco,Azul,Rosa";
Total_de_Puertas=3;
Total_de_Ventanas=6;
Fin SubProceso
SubProcesovoid<-imprimir_datos()
Escribir "LUGAR:"
Escribir " ",lugar
Escribir "CANTIDAD:"
Escribir " ",cantidad
Escribir "AREA:"
Escribir " ",area
Escribir "COLOR:"
Escribir " ",color
Escribir "NUMERO DE PUERTAS:"
Escribir " ",Total_de_Puertas
Escribir "TOTAL DE VENTANAS:"
Escribir " ",Total_de_Ventanas
Fin SubProceso

SubProcesovoid<-nuevos_datos()
lugar ="Salas";
cantidad= 2;
area= 14.56;
color="Rojo,Azul";
Total_de_Puertas=2;
Total_de_Ventanas=4;
Fin SubProceso
SubProcesovoid<-otros_datos()
lugar ="Banio";
cantidad= 2;
area= 10.31;
color="Durazno,Azul";
Total_de_Puertas=2;
Total_de_Ventanas=0;
Fin SubProceso
SubProcesovoid<-ingresar_mas_datos()
lugar ="Cocina";
cantidad= 1;
area= 6.31;
color="Blanco";
Total_de_Puertas=0;
Total_de_Ventanas=2;
Fin SubProceso
SubProcesovoid<-ult_datos()
lugar ="Cuarto de Servicio";
cantidad= 1;
area= 8.31;
color="Azul";
Total_de_Puertas=1;
Total_de_Ventanas=2;
Fin SubProceso

CODIGO
/*Programa 8
Programa que muestra los datos de la diferentes areas de una casa,
utilizando estructuras como argumento de funcion
ICA
2AM2
Programacin orientada a objetos
*/
#include<iostream>
#include<cstdio>
#include<cstdlib>
usingnamespacestd;
struct casa { char *lugar;
int cantidad;
doublearea;
char *color;
intTotal_de_Puertas;
intTotal_de_Ventanas;
}x;
voidingresar_datos_uno (struct casa *px);
voidimprimir_datos (struct casa *px);
voidnuevos_datos (struct casa *px);
voidotros_datos (struct casa *px);
voidingresar_mas_datos(struct casa *px);
voidult_datos (struct casa *px);
intmain ()
{
system("color 3F");
cout<<"\n\t******DATOS DE UNA CASA****** \n"<<endl;
ingresar_datos_uno(&x);
imprimir_datos(&x);
cout<<endl;

nuevos_datos(&x);
imprimir_datos(&x);
cout<<endl;
otros_datos(&x);
imprimir_datos(&x);
cout<<endl;
ingresar_mas_datos(&x);
imprimir_datos(&x);
cout<<endl;
ult_datos(&x);
imprimir_datos(&x);
cout<<endl;
return 0;
}
voidingresar_datos_uno (struct casa *px)
{
px->lugar="Recamaras";
px->cantidad=3;
px->area=45.08;
px->color="Blanco,Azul,Rosa";
px->Total_de_Puertas=3;
px->Total_de_Ventanas=6;
}
voidimprimir_datos (struct casa *px)
{
cout<<"\tLUGAR:
"<<px->lugar <<endl;
cout<<"\tCANTIDAD:
"<<px->cantidad <<endl;
cout<<"\tAREA:
"<<px->area<<"m2"<<endl;
cout<<"\tCOLOR:
"<<px->color <<endl;
cout<<"\tNUMERO DE PUERTAS: "<<px->Total_de_Puertas<<endl;
cout<<"\tTOTAL DE VENTANAS: "<<px->Total_de_Ventanas<<endl;
}
voidnuevos_datos (struct casa *px)
{
px->lugar ="Salas";

px->cantidad= 2;
px->area= 14.56;
px->color="Rojo,Azul";
px->Total_de_Puertas=2;
px->Total_de_Ventanas=4;
}
voidotros_datos (struct casa *px)
{
px->lugar ="Banio";
px->cantidad= 2;
px->area= 10.31;
px->color="Durazno,Azul";
px->Total_de_Puertas=2;
px->Total_de_Ventanas=0;
}
voidingresar_mas_datos(struct casa *px)
{
px->lugar ="Cocina";
px->cantidad= 1;
px->area= 6.31;
px->color="Blanco";
px->Total_de_Puertas=0;
px->Total_de_Ventanas=2;
}
voidult_datos (struct casa *px)
{
px->lugar ="Cuarto de Servicio";
px->cantidad= 1;
px->area= 8.31;
px->color="Azul";
px->Total_de_Puertas=1;
px->Total_de_Ventanas=2;
}

RESULTADOS

1. Aqu se puede observar que se imprimen los datos de las 5 funciones de la


estructura casa, por cada bloque que se encuentra separado por un salto
de lnea es una funcin con sus respectivos datos
/////////////////////////////////////////////////////////////////////////////////////////////////////

3.- Generador de ID (tres tipos de datos)


Generador_ID
-double x;
-int y;
-char z[30];
-char a[30];

SEUDOCODIGO
Inicio
Escribir: Programa que genera un codigo de identificacion personal ID
Escribir: Porfavor ingresa tus datos personales
Subproceso->
FinProceso

Usuario_Ingresando_Datos(Usuario1.x,Usuario1.y,Usuario1.z,Usuario1.a)

Subproceso->
Usuario_Ingresando_Datos(Usuario1.x,Usuario1.y,Usuario1.z,Usuario1.a)
Escribir: Ingresa el ao en que naciste Leer: usuario1.x
Escribir: Ingresa el ao en que te registras Leer: ususario1.y
Escribir: Ingresa tu primer nombre (Sin dejar espacios)
Leer: usuario1.z Escribir: Ingresa tu primer apellido (Sin dejar espacios)
Leer: usuario1.a Res= (x/100)-(y/100)-[3][3]
Escribir: Tu cdigo es: Res
FinSubproeso

Cdigo
/*Programa 3
Programa que genera un codigo ID utlizando tres tipos de datos diferentes
ICA
2AM2
Fundamentos de programacin orientada a objetos
*/
#include<iostream>

#include<cstdio>
#include<cstring>
usingnamespacestd;
structGenerador_ID
{
double x;//Ao de nacimiento
int y;//Ao de registro
char z[30];//Nombre de Usuario
char a[30];//Nombre de Usuario
};
intUsuario_Ingresando_Datos(int x, float y, char z[30], char a[30]);
int
main()
{
Generador_ID Usuario1;
cout<<"\n ********Programa que genera un codigo de identificacion personal
ID********"
<<"\n\nPorfavor ingresa tus datos personales\n\n\n";
Usuario_Ingresando_Datos(Usuario1.x,Usuario1.y,Usuario1.z,Usuario1.a);
}
intUsuario_Ingresando_Datos(int x, float y, char z[30], char a[30])
{
Generador_ID Usuario1;
cout<<"Ingresa el a"<<char(164)<<"o en que naciste :
";//<<Usuario1.x<<Usuario1.y<<Usuario1.z<<endl;
cin>>Usuario1.x;
cout<<"Ingresa el a"<<char(164)<<"o en que te registras : ";
cin>>Usuario1.y;
cout<<"Ingresa tu primer nombre (Sin dejar espacios) : ";
cin>>Usuario1.z;
cout<<"Ingresa tu primer apellido (Sin dejar espacios) : ";
cin>>Usuario1.a;
//La diferencia de lo valores al dividir con flotantes y con enteros
cout<<"\nTucodigo es: "<<Usuario1.x/100<<"-"<<Usuario1.y/100<<"-"
<<Usuario1.z[0]<<Usuario1.z[1]<<Usuario1.z[2]
<<Usuario1.a[0]<<Usuario1.a[1]<<Usuario1.a[2]<<endl;
}

El programa genera un cdigo de identificacin personal basndose en los datos


que te pide (Ao de nacimiento, ao de registro, tu primer nombre y tu primer
apellido)

El tipo de impresin vara segn el tipo de dato ya que los datos ingresados tipo int
y float se dividen entre 100 pero vara el resultado ya que float acepta dgitos con
punto decimal y los datos tipo int no.

5.- Datos de alumnos

alumno
int boleta[9];
char nombre[9][25];
char apellido[9][25];
char carrera[9][25];
float promedio[9];

CDIGO
/*PROGRAMA 5
Programa que imprime los datos de un alumno
Programa que da el nombre, edad y calificacion de un alumno
ICA
2AM2
Fundamentos de programacin orientada a objetos
*/
#include<iostream>
#include<cstdio>
#include<cstdlib>
usingnamespacestd;
struct alumno
{
int boleta[9];//Representa un arreglo de 9 espacios de memoria
char nombre[9][25];//Representa un arreglo de 9 espacios de memoria y 25
para caracteres
char apellido[9][25];//Representa un arreglo de 9 espacios de memoria y 25
para caracteres
char carrera[9][25];//Representa un arreglo de 9 espacios de memoria y 25
para caracteres
float promedio[9];//Representa un arreglo de 9 espacios de memoria
}alumn;
intmain ()
{
inti,b;
alumn.nombre[9][25];
alumn.apellido[9][25];
alumn.carrera[9][25];
alumn.promedio[9];
alumn.boleta[9];
do{
for (i=1;i<10; i++)//Por medio del ciclo for se ir asignando el arreglo a cada
elemento de i
{
system ("cls");
cout<<"\t*****Programa que da informacion sobre un alumno*****\n"<<endl;
cout<<"Ingresa tu primer nombre"<<endl;
cin>>alumn.nombre[i];

cout<<"Ingresa tu apellido"<<endl;
cin>>alumn.apellido[i];
cout<<"Ingresa tu carrera"<<endl;
cin>>alumn.carrera[i];
cout<<"Ingresa tu promedio"<<endl;
cin>>alumn.promedio[i];
cout<<"Ingresa tu numero de boleta"<<endl;
cin>>alumn.boleta[i];
}
system ("cls");
for (i=1;i<10; i++)
{
cout<<i<<"\t\tNombre: "<<alumn.nombre[i]<<endl<<"\t\tApellido: "
<<alumn.apellido[i]<<endl<<"\t\tCarrera: "<<alumn.carrera[i]<<endl
<<"\t\tPromedio: "<<alumn.promedio[i]<<endl<<"\t\tBoleta:
"<<alumn.boleta[i]<<"\t\n"<<endl;
}
cout<<"Desea ingresar un nuevo alumno "<<endl<<endl<<"Si=1 No=0"<<endl;
cin>>b;
}
while (b!=0);
}

Esta imagen muestra las impresiones de pantalla por cada alumno, como se
declar un arreglo, ste aparta memoria suficiente para la informacin de 9
alumnos a los que se les pide que ingresen su nombre, apellido, carrera, promedio
y boleta.

Una vez impresos los 9 alumnos el programa te pregunta si deseas realizar otra
vez el proceso.

7.- Promedio de dos grupos

escuela
materia1
materia2

Cdigo

/*Programa 7
Se tienen dos grupos de alumnos cada grupo tiene 5 alumnos, cada alumno cursa
2 materias, encontrar el promedio por alumno,
el promedio de cada materia por grupo, el promedio general de ambos grupos, el
promedio mas alto, y el promedio mas bajo
ICA
2AM2
Fundamentos de programacin orientada a objetos
*/
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstdlib>
usingnamespacestd;
struct escuela
{
float materia1;
float materia2;
}alum_g1[5],alum_g2[5];
main ()

{
system ("color 1F");
float
promedio_alug1[5],promedio_alug2[5],promedio_mat1g1=0,promedio_mat1g2=0,p
romedio_mat2g1=0,promedio_mat2g2=0,promedio_g1=0,
promedio_g2=0,promedio_total=0,alto=0,bajo=1000;
cout<<"\n\n\t\t*****Programa que calcula promedios de grupos*****\n\n\n\n"<<endl;

cout<<"GRUPO 1\n\n";
for(int i=1;i<6;i++)//Registro de calificaciones por alumno del grupo 1
{
cout<<"Dame la calificacion del alumno "<<i<<" de la Materia 1 : ";
cin>>alum_g1[i].materia1;
cout<<"Dame la calificacion del alumno "<<i<<" de la Materia 2 : ";
cin>>alum_g1[i].materia2;
cout<<endl;
}
cout<<"GRUPO 2\n\n";
for(int j=1;j<6;j++)//Registro de calificaciones por alumno del grupo 2
{
cout<<"Dame la calificacion del alumno "<<j<<" de la Materia 1 : ";
cin>>alum_g2[j].materia1;
cout<<"Dame la calificacion del alumno "<<j<<" de la Materia 2 : ";
cin>>alum_g2[j].materia2;
cout<<endl;
}
cout<<"-------------------------Promedios-------------------------\n\n";
//Promedio por alumno del grupo 1
for(int r=1;r<6;r++)
{
promedio_alug1[r]=(alum_g1[r].materia1+alum_g1[r].materia2)/2;
cout<<"Promedio alumno "<<r<<" del grupo 1 : "<< promedio_alug1[r]<<endl;
}
cout<<"\n\n";
//Promedio por alumno del grupo 2
for(int s=1;s<6;s++)
{
promedio_alug2[s]=(alum_g2[s].materia1+alum_g2[s].materia2)/2;
cout<<"Promedio del alumno "<<s<<" del grupo 2 : "<< promedio_alug2[s]<<endl;
}
cout<<"\n\n";
//Promedio materia 1 del grupo 1
for(int t=1;t<=6;t++)
{
promedio_mat1g1=promedio_mat1g1+(alum_g1[t].materia1)/5;
}

cout<<"Promedio de la materia 1 del grupo 1 : "<< promedio_mat1g1<<endl;


//Promedio materia 2 del grupo 1
for(int v=1;v<=6;v++)
{
promedio_mat2g1=promedio_mat2g1+(alum_g1[v].materia2)/5;
}
cout<<"Promedio de la materia 2 del grupo 1 : "<<
promedio_mat2g1<<"\n\n"<<endl;
//Promedio materia 1 del grupo 2
for(int u=1;u<=6;u++)
{
promedio_mat1g2=promedio_mat1g2+(alum_g2[u].materia1)/5;
}
cout<<"Promedio de la materia 1 del grupo 2 : "<< promedio_mat1g2<<endl;
//Promedio materia 2 del grupo 2
for(int w=1;w<=6;w++)
{
promedio_mat2g2=promedio_mat2g2+(alum_g2[w].materia2)/5;
}
cout<<"Promedio de la materia 2 del grupo 2 : "<< promedio_mat2g2<<endl;
//Promedio general de ambos grupos
for(int x=1;x<=6;x++)
{
promedio_g1=(promedio_mat1g1+promedio_mat2g1)/2;
promedio_g2=(promedio_mat1g2+promedio_mat2g2)/2;
promedio_total=(promedio_g1+promedio_g2)/2;
}
cout<<"\n\nPromedio general de ambos grupos : "<<promedio_total<<endl;
//El promedio mas alto
for(int y=1;y<=6;y++)
{
if(promedio_alug1[y]>alto)
alto=promedio_alug1[y];
if(promedio_alug1[y]<bajo)
bajo=promedio_alug1[y];
}
for(int z=1;z<=6;z++)
{
if(promedio_alug2[z]>alto)
alto=promedio_alug2[z];
if(promedio_alug2[z]<bajo)
bajo=promedio_alug2[z];
}
cout<<"\n\nEl promedio mas alto es : "<<alto<<endl;
cout<<"El promedio mas bajo es : "<<bajo<<endl;
}

Se muestra en pantalla que teclees la calificacin de cada integrante del grupo.


Grupo 1

Grupo 2

Se imprime el promedio de cada alumno por grupo, el promedio general de la


materia 1 y 2 de ambos grupos, el promedio general de ambos grupos y el
promedio ms alto y ms bajo de ambos grupos

CONCLUSIONES:
Luis Alberto Salazar Bravo
Struct
Se concluy que es un buen inicio al mundo de la programacin orientada a objetos, las
estructuras. Una estructura es un tipo de dato compuesto que permite almacenar un

conjunto de datos de diferente tipo. La forma de definir una estructura es mediante la


palabra reservada structPara acceder a los miembros de las estructuras se usa el punto u
operador miembro( . )
Luis Alberto lvarez Gmez
Es muy importante el tema de estructuras ya que nos da las bases para posterior mente aplicarlo
en el tema de clases, ya que una clase se deriva de una struct.
Moreno Prieto Vctor Mario

ESTRUCTURAS
Concluyo que conocer ste tema es muy importante ya que te proporciona las bases y los
conceptos elementales para poder adentrarse a lo que son las clases. Los primeros
elementos que constituyen a las estructuras son los datos miembro o atributos y nos
sirven para darnos una idea al momento de emplear las clases.

REFERENCIAS BIBLIOGRAFICAS:
Deitel, Harvey M. y Paul J. Deitel
Cmo programar en C++
Sexta edicin
Pearson Educacin, Mxico 2009
1112 pp.
Gary J. Bronson
C++ para ingeniera y ciencias
Segunda edicin
CengageLearning, Mxico 2010
826 pp.
Ernesto Pealoza Romero
Fundamentos de programacin C/C++
Cuarta edicin
Alfaomega grupo editor, Mxico 2004
550 pp.

Apuntes para el curso de Estructuras de datos en C/C++


http://computacion.cs.cinvestav.mx/~acaceres/courses/estDatosCPP/esda.pdf
Estructuras en C/C++ | Programacion
https://gbenussi.wordpress.com/2012/04/26/estructuras-en-cc/
Como utilizar el comando Struct en c++ - Taringa!
www.taringa.net/posts/...y.../Como-utilizar-el-comando-Struct-en-c.htML

ESTRUCTURAS Y UNIONES EN C++ - SlideShare

http://es.slideshare.net/dmcuenca4/estructuras-y-uniones-en-c

INSTITUTO POLITECNICO NACIONAL


ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
U.ZACATENCO
PROGRAMACION ORIENTADA A OBJETOS

UNIONES: (union)
Profesor: Torres Sabino Manuel
Grupo: 2AM2
Integrantes:

Salazar Bravo Luis Alberto

Moreno Prieto Vctor Mario

lvarez Gmez Luis Alberto

OBJETIVO:
Que el alumno comprenda el tema de uniones, respecto a sus funcionalidades y a sus
aplicaciones de programacin.

FUNDAMENTO TEORICO
Qu es una unin (union)?
Las uniones son un recurso de programacin que permite alojar distintos tipos de objetos
en un mismo espacio cuando estos objetos no coexisten en el tiempo y no hay suficiente
memoria disponible para asignarles espacios distintos. Se trata por tanto de objetos muy
especializados en cuanto a su uso, propio de aplicaciones muy "afinadas", de tiempos en
que la memoria era un bien escaso, pero cuya utilizacin real es bastante rara y
desaconsejada.
Las uniones son un tipo especial de estructuras que permiten almacenar elementos de
diferentes tipos en las mismas posiciones de memoria, aunque evidentemente no
simultneamente.
La definicin de "unin" es similar a la de "estructura", La diferencia entre las dos es que
en una estructura, los miembros ocupan diferentes areas de la memoria, pero en una
unin, los miembros ocupan la misma rea de memoria. Entonces como ejemplo:
Union
{
int i;
double d;
} u;
El programador puede acceder a travs de "u.i" o de "u.d", pero no de ambos al mismo
tiempo. Como "u.i" y "u.d" ocupan la misma rea de memoria, modificar uno modifica el
valor del otro y algunas veces de maneras impredecibles
Sintaxis:
union [<identificador>]
{
[<tipo><nombre_variable>[,<nombre_variable>,...]];
} [<variable_union>[,<variable_union>,...];

Una unin es un tipo de datos derivado, como una estructura, con miembros que
comparten el mismo espacio de almacenamiento. Una variable de tipo unin puede
contener (en momentos diferentes) objetos de diferentes tipos y tamaos. Las uniones
proporcionan una forma de manipular diferentes clases de datos dentro de una sola rea
de almacenamiento. En cualquier momento una unin puede contener un mximo de un
objeto debido a que los miembros de una unin comparten el espacio de
almacenamiento.
Una unin se declara con el mismo formato de una struct. Primero declaramos el tipo
unin y luego declaramos variables de ese tipo.
Por ejemplo:
typedef char str[10];
union tipo union
{
int ival;
float fval;
str sval;
};
Declara el tipo union y declaramos una variable del tipo unin o puntero a unin con:
Tipo unin u, *v;
La variable ser lo suficientemente grande como para mantener el mayor de los tres tipos.
Valores de cualquiera de esos tipos pueden ser asignados a u y despus empleado en
expresiones mientras que el uso sea consistente: el tipo recuperado debe ser el tipo que
se almacen ms recientemente. Es responsabilidad del programador llevar el registro del
tipo que est almacenado actualmente en una unin.
El resultado de referenciar un miembro de unin diferente al ultimo que se guard es
indefinido, ya que el dato almacenado se trata como de tipo diferente. Tenemos acceso a
los miembros de una unin con:
nombre union.miembro.
///////////////////////////////////////////////////////////////////////////////

9.- Estructura unin


numero
int x;
float y;

Cdigo
/*Programa 9
Programa para conocer el uso de union
ICA
2AM2
Fundamentos de programacin orientada a objetos
*/
#include<iostream>
#include<cstdlib>
#include<cstdio>
usingnamespacestd;
union numero/*Union solo perimte utilizar una casilla de espacio de memoria
lo que significa que se sobreescriben los datos al utilizarla mas de una vez*/
{
int x;
float y;
};
intmain()
{
union numero val;//Objeto llamado val (Si se omite union funciona igual)
val.x = 100;//x esta previamente declarada como un dato tipo int en numero y
equivale a 100
cout<<"Coloca un valor en el entero"
<<"\ne imprime ambos datos.\n"
<<"int :\n"<<val.x<<endl<<"float :\n"<<val.y<<endl<<"\n\n";//Memoria basura en y
val.y=253.35;//y esta previamente declarada como un dato tipo float en numero y
equivale a 253.35
cout<<"Coloca un valor en el dato flotante"
<<"\ne imprime ambos datos.\n"
<<"int :\n"<<val.x<<endl<<"float:\n" <<val.y<<"\n\n";//Memoria basura en x
}

Imprime en pantalla los valores que el programa asigna a x en este caso 100,
como dato tipo entero y despus vuelve a imprimir x pero sale un valor asignado a
x por que previamente ya se le haba asignado el valor de 100, el uso de unionsolo
perimte utilizar una casilla de espacio de memoria. De igual manera sucede con y.

CONCLUSIONES:
Moreno Prieto Vctor Mario
UNIONES
Es importante tambin conocer el tema de las uniones, son similares a las estructuras con
la nica diferencia de la palabra unin y de que nos ocupan la misma localidad de
memoria ya que se reparte la memoria
Luis Alberto Salazar Bravo

Union
Se puede concluir que una estructura union es muy similar a la de una estructura struct a
diferencia de que en ambas los miembros ocupan diferentes reas de memoria ya que en
las estructuras union los miembros de la clase ocupan una misma localidad de memoria.
lvarez Gmez Luis Alberto
Las uniones servan antes puesto que los equipos de cmputo contaban con muy poco espacio de
memoria, pero en la actualidad ya no se utilizan, puesto que es muy tardado e innecesario.

REFERENCIAS BIBLIOGRAFICAS:
Deitel, Harvey M. y Paul J. Deitel
Cmo programar en C++
Sexta edicin
Pearson Educacin, Mxico 2009
1112 pp.
Gary J. Bronson
C++ para ingeniera y ciencias
Segunda edicin
CengageLearning, Mxico 2010
826 pp.
Ernesto Pealoza Romero
Fundamentos de programacin C/C++
Cuarta edicin
Alfaomega grupo editor, Mxico 2004
550 pp.

Curso de C++ - Tipos de variables V: Uniones


http://c.conclase.net/curso/?cap=016
UNIONES en C/C++
http://www.fing.edu.uy/tecnoinf/mvd/cursos/eda/material/teo/EDA-teorico13.pdf
ESTRUCTURAS Y UNIONES EN C++ - SlideShare

http://es.slideshare.net/dmcuenca4/estructuras-y-uniones-en-c

INSTITUTO POLITECNICO NACIONAL


ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
U.ZACATENCO
PROGRAMACION ORIENTADA A OBJETOS

CLASES:
Profesor: Torres Sabino Manuel
Grupo: 2AM2
Integrantes:

Salazar Bravo Luis Alberto

Moreno Prieto Vctor Mario

lvarez Gmez Luis Alberto

(class)

OBJETIVO:
El alumno deber desarrollar mltiples programas mediante el uso de clases, aplicando las
caractersticas principales como: operadores de mbito, funciones miembro,
constructores y destructores.

FUNDAMENTO TEORICO
CLASES (CLASS)
La clase puede definirse como la agrupacin o coleccin de objetos que comparten una
estructura comn y un comportamiento comn. Es una plantilla que contiene la
descripcin general de una coleccin de objetos. Consta de atributos y mtodos que
resumen las caractersticas y el comportamiento comunes de un conjunto de objetos.
Uno de los procesos ms comunes que los seres humanos empleamos para solucionar
problemas, es la clasificacin de los objetos dentro de categoras ms amplias que los
abarquen. Estas categoras de objetos reciben el nombre de clases. Una clase agrupa a
todos aquellos objetos que poseen caractersticas similares. Un objeto que pertenece a
una clase recibe el nombre de instancia.
La clasificacin de los objetos dentro de clases se obtiene relacionando aquellas
caractersticas comunes a los objetos. Cada clase debe de poseer un conjunto de
conocimientos que le permitan realizar las responsabilidades que le sean conferidas.
Cuando se enva un mensaje a una clase, sta determina cul de sus miembros tiene la
capacidad necesaria para resolver la tarea que le ha sido encomendada.
La clasificacin correcta de los objetos dentro de las clases, permite a los elementos de un
sistema orientado a objetos ser reutilizados en otros sistemas, adems de constituir
plataformas sobre las cuales uno puede construir un programa sin necesidad de partir de
la nada.

Una clase es un nivel de abstraccin alto.


Un objeto es una instancia de una clase
Las clases se relacionan entre s mediante una jerarqua
Los nombres o identificadores de las clases deben colocarse en singular (clase
Animal, clase Carro, clase Alumno)

Su sintaxis algortmica es:


Clase <Nombre de la Clase>


FClase<Nombre de la Clase>;
CLASE:

una clase es una plantilla para la creacin de objetos de datos segn un modelo
predefinido. Las clases se utilizan para representar entidades o conceptos, como los
sustantivos en el lenguaje. Cada clase es un modelo que define un conjunto de variables el estado, y mtodos apropiados para operar con dichos datos -el comportamiento. Cada
objeto creado a partir de la clase se denomina instancia de la clase.
Las clases son un pilar fundamental de la programacin orientada a objetos. Permiten
abstraer los datos y sus operaciones asociadas al modo de una caja negra. Los lenguajes
de programacin que soportan clases difieren sutilmente en su soporte para diversas
caractersticas relacionadas con clases. La mayora soportan diversas formas de herencia.
Muchos lenguajes tambin soportan caractersticas para proporcionar encapsulacin,
como especificadores de acceso.

OPERADOR DE AMBITO:
Qu es un operador de mbito?
En C++ solemos referirnos a dos tipos de mbitos: temporal y de acceso. As, el mbito
temporal indica el intervalo de tiempo en el que un objeto existe o es accesible. El mbito
de acceso nos dice desde donde es accesible.
Adems de los que pueden declararse explcitamente con la palabra clave namespace en
C++ existen mltiples espacios de nombres. El operador que aqu nos ocupa, debe su
nombre precisamente a que sirve como puente o camino para acceder a objetos que
momentneamente estn fuera de mbito. El operador :: de acceso a mbito o resolucin
de mbito, permite referenciar (acceder) a un tipo, objeto, funcin o enumerador incluso
si su identificador est oculto
Existen dos tipos de operador de acceso a mbito: unario y binario, que adoptan
respectivamente las siguientes sintaxis:

:: <objeto>

// Op. unario

<subespacio> :: <objeto> // Op. Binario

El :: es llamado el operador de resolucin de mbito. Esencialmente le dice al compilador


que esta versin de m_Renderizar pertenece a la clase CRender. Dicho de otra
forma, :: declara que m_Renderizar se encuentra en el mbito de CRender. Varias clases
diferentes pueden usar los mismos nombres de funcin. El compilador sabe cul funcin
pertenece a cul clase y esto es posible por el operador de resolucin de mbito y el
nombre de la clase.

FUNCIONES MIEMBRO:
Las funciones miembros de una clase slo pueden ser llamadas relativas a un objeto
especfico. Para llamar a una funcin miembro desde alguna parte del programa que se
encuentre fuera de la clase, se debe usar el nombre del objeto y el operador de
direcionamiento '.' ( punto ). Por ejemplo, lo siguiente llama a m_Renderizar() en el objeto
objeto1.
CRender objeto1, objeto2;
objeto1.m_Renderizar();

La invocacin de objeto1.m_Renderizar() causa a m_Renderizar() operar en los datos de la


copia de objeto1. Mantenga en mente que objeto1 y objeto2 son 2 objetos separados.
Esto significa, por ejemplo, que inicializar objeto1 no causa que objeto2 sea inicializado, La
nica relacin que objeto1 tiene con objeto2 es que es un objeto del mismo tipo.
Cuando una funcin miembro llama a otra funcin miembro de la misma clase, puede
hacerlo directamente, sin usar un objeto y el operador '.' En este caso, el compilador ya
conoce en cul objeto se est operando. Solamente cuando una funcin miembro es
llamada por cdigo que se encuentra fuera de la clase es cuando debe utilizarse el nombre
del objeto y el operador '.' Por la misma razn, una funcin miembro puede referirse
directamente a una variable miembro, pero cdigo fuera de la clase debe referenciarse a
la variable a travs de un objeto y el operador '.'
El programa siguiente muestra aqu todas las piezas juntas y detalles perdidos, e ilustra la
clase CRender.

Mtodos:
En comparacin con la programacin tradicional, un mtodo es lo mismo que una
funcin cualquiera, salvo que como los mtodos se declaran para pertenecer a una
clase especfica, se dice que todos los mtodos de dicha clase son miembros de la
misma. Por lo dems, la declaracin y definicin de los mtodos es exactamente
igual que declarar y definir cualquier otra funcin.
Atributos:

En comparacin con la programacin tradicional, un atributo es lo mismo que una


variable cualquiera, salvo que como los atributos se declaran para pertenecer a
una clase especfica, se dice que todos los atributos de dicha clase
son miembros de la misma. Por lo dems, la declaracin de los atributos es
exactamente igual que declarar cualquier otra variable.

CONSTRUCTORES:
Qu es un constructor?
Cada objeto o instancia de una clase debe ser creada explcitamente a travs de un
mtodo u operacin especial denominado Constructor. Los atributos de un objeto toman
valores iniciales dados por el constructor. Por convencin el mtodo constructor tiene el
mismo nombre de la clase y no se le asocia un modo de acceso (es pblico).
Algunos lenguajes proveen un mtodo constructor por defecto para cada clase y/o
permiten la definicin de ms de un mtodo constructor.

En programacin orientada a objetos (POO), un constructor es una subrutina cuya misin


es inicializar un objeto de una clase. En el constructor se asignan los valores iniciales del
nuevo objeto.
Se utiliza para crear tablas de clases virtuales y poder as desarrollar el polimorfismo, una
de las herramientas de la programacin orientada a objetos. Al utilizar un constructor, el
compilador determina cual de los objetos va a responder al mensaje (virtual) que hemos
creado. Tiene un tipo de acceso, un nombre y un parntesis.

Qu es un destructor?
Los objetos que ya no son utilizados en un programa, ocupan intilmente espacio de
memoria, que es conveniente recuperar en un momento dado. Segn el lenguaje de
programacin utilizado esta tarea es dada al programador o es tratada automticamente
por el procesador o soporte de ejecucin del lenguaje.
En la notacin algortmica no tomaremos en cuenta ese problema de administracin de
memoria, por lo tanto no definiremos formas para destruir objetos. En cambio al utilizar
lenguajes de programacin si debemos conocer los mtodos destructores suministrados
por el lenguaje y utilizarlos a fin de eliminar objetos una vez no sean tiles.

Un destructor en programacin orientada a objetos es una funcin miembro especial


llamadas automticamente en la ejecucin del programa, y por tanto no tienen por qu
ser llamadas explcitamente por el programador. Sus principales cometidos son:
Liberar los recursos computacionales que el objeto de dicha clase haya adquirido en su
tiempo de ejecucin al expirar ste.
Quitar los vnculos que pudiesen tener otros recursos u objetos con ste.
Los destructores son invocados automticamente al alcanzar el flujo del programa el fin
del mbito en el que est declarado el objeto.

////////////////////////////////////////////////////////
PROGRAMA 10. Calculo del rea de un rectngulo utilizando clases
PSEUDOCODIGO
SubProcesovoid<-rectangulo()
base=0
altura=0
Fin SubProceso
SubProceso x <- dimensiones ( b,h )
base = b;
altura = h;
Fin SubProceso
SubProceso x <- area ( )
return<-(base*altura)
Fin SubProceso
Proceso Area_de_rectangulo
x<-dimensiones(2,3)
Escribir "EL AREA DEL RECTANGULO ES:"
Escribir " ", x<-area()
FinProceso

DIAGRAMA DE CLASES
Rectangulo
-base : int
-altura : int
+Rectangulo ();
+dimensiones(int,int) : void
+area() : int

CODIGO
/*Programa 10
Programa que calcula el area de un rectangulo utilizando clases
ICA
2AM2
Programacin orientada a objetos
*/
#include<iostream>
#include<cstdio>
#include<cstdlib>
usingnamespacestd;
classrectangulo { //IMPLEMENTACION DE LA CLASE
private:
int base, altura; //ATRIBUTOS
public:
rectangulo (); //FUNCION CONSTRUCTORA
void dimensiones (int,int); //FUNCION MIEMBRO
intarea (); //FUNCION MIEMBRO
};
rectangulo :: rectangulo() //
{
base=altura=0; //INICIALIZACION DE DATOS MIEMBRO
}
voidrectangulo :: dimensiones(int b, int h)
{
base = b;
altura = h;
}
intrectangulo :: area()
{
return (base*altura);
}
///////////////////////////////////////////////
intmain ()
{
rectangulo x;

x.dimensiones(2,3); //SE ASIGNAN VALORES EN DIMENSIONES


cout<<"\n\t\tEL AREA DEL RECTANGULO ES: \n\t\t"<<x.area()<<endl;
return 0;
}

RESULTADOS

1. Se puede observar que se imprime el area de un rectangulo con dimensiones:


base=2, altura=3

PROGRAMA 12. IMPRESIN DE LAS CARACTERISTICAS DE UN COCHE


CON CLASES

PSEUDOCODIGO
SubProcesovoid<- coche ()
modelo="Chevy 2010";
nopuertas=2;
potencia=100;
velmax=240.0;
velmin=5.0;
velact=60.0;
color="rojo";
Fin SubProceso
SubProcesovoid<- acelerar ( ace )
velact=ace;
Fin SubProceso
SubProcesovoid<- caracnuev(m,np,p,vma,vmi,va,c)
modelo=m;
nopuertas=np;
potencia=p;
velmax=vma;
velmin=vmi;
velact=va;
color=c;
Fin SubProceso
SubProcesovoid<- Imprim ( )
Escribir "Modelo: ",modelo
Escribir "No de puertas: ",nopuertas
Escribir "Velocidad maxima: ",velmax
Escribir "Velocidad minima: ",velmin
Escribir "Velocidad actual: ",velact
Escribir "Potencia: ",potencia
Escribir "Color: ",color
Fin SubProceso
Proceso CaracteristicasCoche
void<-Imprim ( )
Dimensionc[30],m[30]

Escribir "Ingrese aceleracion: "


Leer ace
void<-Imprim ( )
Escribir "Ingrese nuevos datos:"
Escribir "Modelo: "
Leer m[30]
Escribir "No. de puertas: "
Leer np
Escribir "Potencia: "
Leer p
Escribir "Vel. max: "
Leer vmax
Escribir "Vel. min: "
Leer vmin
Escribir "Vel. actual: "
Leer va
Escribir "Color: "
Leer c[30]
void<-caracnuev(m,np,p,vmax,vmin,va,c)
void<-Imprim()
FinProceso

DIAGRAMA DE CLASES
Coche
-NoPuertas : int
-Potencia : int
- velmax : float
-velmin : float
-velact :float
-color : char
-modelo : char
+coche();
+caracnuev(char*,int,int,float,float,float,char*):void
+acelerar(float) : float
+imprimir() : void

CODIGO
/*Programa 12
Programa que imprime las caracteristicas de un auto
ICA
2AM2
Programacin orientada a objetos
*/
#include<iostream>
#include<cstdio>
#include<cstdlib>
usingnamespacestd;
class coche{
private:
intnopuertas,potencia;
floatvelmax,velmin,velact;
char *color, *modelo;
public:
coche();
voidcaracnuev(char*,int,int,float,float,float,char*);
float acelerar(float);
void imprimir();
};
coche::coche(){
modelo="Chevy 2010";
nopuertas=2;
potencia=100;
velmax=240.0;
velmin=5.0;
velact=60.0;
color="rojo";
}
float coche::acelerar(floatace){
velact=ace;
}
void coche::caracnuev(char *m,intnp,intp,floatvma,floatvmi,floatva,char *c){
modelo=m;
nopuertas=np;
potencia=p;
velmax=vma;
velmin=vmi;

velact=va;
color=c;
}
void coche::imprimir(){
cout<<"\nModelo: "<<modelo;
cout<<"\nNo de puertas: "<<nopuertas;
cout<<"\nVelocidadmaxima: "<<velmax;
cout<<"\nVelocidadminima: "<<velmin;
cout<<"\nVelocidad actual: "<<velact;
cout<<"\nPotencia: "<<potencia;
cout<<"\nColor: "<<color;
}
intmain()
{
coche c1;
c1.imprimir();
floatvmax,vmin,va,ace;
intnp,p;
char c[30],m[30];
cout<<"\n\nIngreseaceleracion: "; cin>>ace;
c1.acelerar(ace);
c1.imprimir();
cout<<"\n\nIngrese nuevos datos:\n";
cout<<"Modelo: ";cin>>m;
cout<<"No. de puertas: ";cin>>np;
cout<<"Potencia: ";cin>>p;
cout<<"Vel. max: ";cin>>vmax;
cout<<"Vel. min: ";cin>>vmin;
cout<<"Vel. actual: ";cin>>va;
cout<<"Color: ";cin>>c;
c1.caracnuev(m,np,p,vmax,vmin,va,c);
c1.imprimir();
return 0;
}

RESULTADOS

1.- En esta impresin de pantalla se observa que se imprimen los primeros


atributos predefinidos en la funcin constructora y aparte solicita el ingreso de una
nueva velocidad, con lo que se modificara la velocidad actual

2.- Ahora se observa que se imprimen de nuevo los mismos atributos con la nueva
velocidad actual que fue ingresada en la funcin acelerar, adems se solicitan
introducir nuevos datos en los atributos.

3.- Y por ultimo se observa la impresin de los nuevos valores en los atributos,
tambin se imprimen los primeros y segundos valores.
/////////////////////////////////////////////////////////////////////////////////

11.- rea de tres tringulos


triangulo
+ floata,b,c,h;
+triangulo();
+floatarea();
+float permetro();
+float dimensiones(float,float,float,float);

Cdigo
/*Programa 11
El area de tres tringulos, estructura tipo class
ICA
2AM2
Fundamentos de programacin orientada a objetos

*/
#include<iostream>
#include<cstdlib>
#include<cstdio>
usingnamespacestd;
class triangulo
{
public:
floata,b,c,h;
triangulo ();
floatarea ();
floatperimetro ();
float dimensiones (float, float, float, float);
};
triangulo::triangulo()
{
a=b=c=h=1;//Inicializa los valores en 1
}
float triangulo::area()
{
return((b*h)/2);//Realiza el calculo del area
}
float triangulo::perimetro()
{
return(a+b+c);//Realiza el calculo del perimetro
}
float triangulo::dimensiones( float w, float x, float y, float z)//Funcion en la que
asigna nuevos valores por teclado
{
a=w;
b=x;
c=y;
h=z;
cout<<"\n\n\t\tDame la base del triangulo : ";
cin>>b;
cout<<"\n\t\tDame la altura del triangulo : ";
cin>>h;
cout<<"\n\t\tDame el cateto A del triangulo : ";
cin>>a;
cout<<"\n\t\tDame el cateto B del triangulo : ";
cin>>c;
system("cls");
}
intmain()
{
floata,b,c,h;

triangulo t;//Crea el objeto t


cout<<"Valores inicializados en 1 \n\nElarea es : "<<t.area()<<endl;
cout<<"El perimetro es : "<<t.perimetro()<<endl<<endl<<endl;
system("pause");
system("cls");
for(int i=1;i<=3;i++)//Repite el mismo proceso con valores diferentes ingresados
por teclado
{
t.dimensiones(a,b,c,h);
cout<<"\n\n\n\n\n\t\tAhora el area del triangulo es : "<<t.area()<<endl
<<"\n\t\tY el perimetroes : "<<t.perimetro()<<"\n\n\n\n\n\n\n\n"
<<"\t\t";system("pause");
system("cls");
}
return(0);
}

Los valores se inicializan en el programa con valores de 1 y se calcula el rea y el


permetro

Te pide que ingreses la base y altura del tringulo para calcular el rea
[(b*h)/2]
Al igual que te pide los otros catetos del tringulo para calcular el permetro
[cateto A + cateto B + base]

Imprime en pantalla el rea y permetro del tringulo y se repite el proceso tres


veces

13.- Elevador

Elevator
+int n=1;
- intpiso_act;
+ Elevator (int n=1);
+ void solicitud (int);

Cdigo
/*Programa 13
Elevador
ICA
2AM2
Fundamentos de programacin orientada a objetos
Salazar Bravo Luis Alberto*/
#include<iostream>
#include<math.h>
#include<windows.h>
usingnamespacestd;
constint PISOMAX = 15;//Declara que 15 es un valor constante y que solo hay 15
pisos en el edificio
classElevator
{ private:
intpiso_act;
public:
Elevator (int n=1);//Se declara el piso en el que se va a empezar el recorrido (Piso
actual)
void solicitud (int);
};
Elevator::Elevator(intpisoa)
{
piso_act=pisoa;
}
voidElevator::solicitud(intpisonuevo)
{

//Si el piso nuevo es menor a uno o piso nuevo es mayor que el piso 15 o piso
nuevo es igual al actual
if(pisonuevo<1||pisonuevo>PISOMAX||pisonuevo==piso_act);//Si se cumple no
hacer nada
if (pisonuevo>piso_act&&piso_act<PISOMAX)//Condiciones de recorrido del
elevador
{
cout<<"\nEmpezando en el piso : "<<piso_act<<endl;//Empieza en el piso
while (pisonuevo>piso_act&&piso_act<PISOMAX)
{
piso_act ++;//El elevador va subiendo
cout<<"\nSe detiene en el piso : "<<piso_act<<endl;
Sleep(1000);
}
}
else
{
cout<<"\n\nEmpezando en el piso : "<<piso_act<<endl;
while(pisonuevo<piso_act&&piso_act>1)//Condiciones de recorrido del elevador
{
piso_act--;//El elevador va bajando
cout<<"\nVa para abajo, ahora esta en el piso : "<<piso_act<<endl;
Sleep(1000);
}
cout<<"\nSe detiene en el piso : "<<piso_act<<endl;
}
return;
}

intmain()
{
system("color 3f");
Elevator a;
intx,n;
do{
Beep(290,500);//Reproduce un sonido
cout<<"\nA que piso quieres ir? ";
cin>>x;
a.solicitud(x);
Beep(290,500);//Reproduce un sonido
cout<<"\nA que piso quieres ir? ";
cin>>x;
a.solicitud(x);
Beep(290,500);//Reproduce un sonido
cout<<"\n\nQuieres ir a otro piso?\n"
<<"Si es asi presiona cualquier numero\n"

<<"Si deseas salir presiona 0\n\n";


cin>>n;
system("cls");
}
while(n!=0);
return (0);
}
Inicializa en el piso 1 y te pregunta a que piso deseas ir

Le dices el piso al que deseas ir, te lleva y te vuelve a preguntar a qu piso deseas
ir

Le indique que bajara del piso 6 al piso 3.


Despus me pregunta si deseo ir a otro piso o si deseo salir

///////////////////////////////////////////////////////////////////////////////////////////////

CONCLUSIONES:
Luis Alberto Salazar Bravo

Class
En conclusin una class se considera una agrupacin o coleccin de objetos que
comparten una estructura comn y un comportamiento comn que posteriormente los
objetos tendrn comportamientos respecto a las acciones declaradas en la clase.
Agiliza la programacin y es ms reducido el tiempo de programacin
Los operadores de mbito son dgitos dentro del cdigo ASCCI (. , ::) y existen dos tipos de
operador de acceso a mbito: unario y binario con los cuales sirven como puente o
camino para acceder a objetos
Los constructores permiten inicializar los datos miembro de las clases

lvarez Gmez Luis Alberto

Las clases en c++ son la base y son el principal tema para casi cualquier programa que
realicemos, ya que a partir de una clase de desarrollan todos los elementos del programa,
en los programas realizados, la mayor parte del programa (codigo) se desarrolla en las
clases y en las funciones de las clases.

Moreno Prieto Vctor Mario


CLASES(operador de acceso y funciones miembro)
Es elemental conocer lo que es el operador de ambito dentro de las clases ya que nos
permite acceder a las fuciones miembro de las clases
Las funciones miembro igual son de suma importancia conocer y aplicar stas ya que
describen las caractersiticas y el comportamiento de un conjunto de objetos.
CLASES(constructores y destructores)
Se puede concluir que es muy importante conocer el tema de las estructuras puesto que
los programas hay partes que requieren inicializacin. Esta necesidad de inicializacin es
incluso ms comn cuando se est trabajando con objetos y por esta situacin, C++
permite incluir una funcin constructora. Por el otro lado una funcin destructora se le
llama automticamente cuando se destruye el objeto que tambin es necesario
conocerlos.

REFERENCIAS BIBLIOGRAFICAS:
Deitel, Harvey M. y Paul J. Deitel
Cmo programar en C++
Sexta edicin
Pearson Educacin, Mxico 2009
1112 pp.
Gary J. Bronson
C++ para ingeniera y ciencias
Segunda edicin
CengageLearning, Mxico 2010
826 pp.
Ernesto Pealoza Romero
Fundamentos de programacin C/C++
Cuarta edicin
Alfaomega grupo editor, Mxico 2004
550 pp.

Curso de C++ - Declaracin de una clase - C++ con Clase


c.conclase.net/curso/?cap=028
Programacin en C++/Objetos y Clases - Wikilibros
es.wikibooks.org/wiki/Programacin_en_C%2B%2B/Objetos_y_Clases
Programacion en C++ - Clases en C++
dis.unal.edu.co/~fgonza/courses/2003/poo/c++.htm
[PDF]Clase 3 - Programacin Orientada a Objeto con C++
www.jlmarina.net/metodos2/MET2_07_04-Clases_y_Objetos.pdf

Você também pode gostar