You are on page 1of 16

//CONSTRUCTORES – DESTRUTORES-HERENCIA

/*
#include<iostream>
#include<stdlib.h>
using namespace std;
class trapecio{
protected:
float b,B,h;
public:
void leerbBh(float p,float q,float r);
double Area(float b,float B,float h);
};
//Implementacion
void trapecio::leerbBh(float p,float q,float r)
{b=p;B=q;h=r;}

double trapecio::Area(float b,float B,float h){


return((b+B)*h/2.0);}

void main(){
trapecio figura;
float x,y,z;
cout<<"b = ";cin>>x;
cout<<"B = ";cin>>y;
cout<<"h = ";cin>>z;
figura.leerbBh(x,y,z);
cout<<"\nEl Area del trapecio = "<<figura.Area(x,y,z)<<endl;
system("pause");
}

// CALCULA LA RESULTANTE DE 02 FUERZAS CON CLASS


//UNA FORMA DE USAR LA POO
#include<iostream>
#include<stdlib.h>
#include<math.h>
#define pi 2*asin(1.0)
#define A pi/180

class Fuerzas{
protected:
float F1,F2,theta;//instancia estatica
//metodos, o Funcionabilidad
//Es la instancia dinamica
public:
void LeerF1F2theta(float p,float q,float r);
double resultante(float F1,float F2,float theta);
};
//implementacion
void Fuerzas::LeerF1F2theta(float p,float q,float r){
F1=p;F2=q;theta=r;
}
double Fuerzas::resultante(float F1,float F2,float theta){
return sqrt((pow(F1,2)+pow(F2,2)+2*F1*F2*cos(theta*A)));
}

Ing. Daniel Osorio Maldonado Página 1


using namespace std;
void main(){
Fuerzas Fs;
float x,y,z;
cout<<"Ingrese la fuerza F1= ";cin>>x;
cout<<"Ingrese la fuerza F2= ";cin>>y;
cout<<"Ingrese el angulo theta= ";cin>>z;

Fs.LeerF1F2theta(x,y,z);
cout<<"\nLa resultante es "<<Fs.resultante(x,y,z)<<endl;
system("pause");
}

//CALCULANDO EN NUMERO e
#include<iostream>
#include<stdlib.h>
#include<math.h>

class num_e{
protected:
int N;
public:
void leerN(int M);
double valor_e(int N);
};
//Implementacion
void num_e::leerN(int M)
{N=M;}
double num_e::valor_e(int N){
double F=1;double Se=0;
for(int i=1;i<=N;i++){
F*=i;
Se=Se+1.0/F;}
return(Se);
}

using namespace std;


void main(){
num_e e1;
int P;
cout<<"Ingrese el Numero de Terminos N = ";
cin>>P;
e1.leerN(P);
cout<<"El Numero e es = "<<e1.valor_e(P)<<endl
<<"El Valor Verdadero es "<<exp(1.0)<<endl;
system("pause");
}

//Programa que calcula el área de un circulo mediante Objetos


#include<iostream>
#include<process.h>
#define pi 2*asin(1.0)
#define mensaje "\n Otra Prueba [S][N]"

using namespace std;

Ing. Daniel Osorio Maldonado Página 2


class cAcirculo {
protected:
float R;
public:
void asignaRadio (float x);
double obtieneArea ();
double obtieneLongitud ();
};
//Implementacion
//Para definir los metodos asignarRadio(), obtieneArea()
//y obtieneLongitud(),
//se hace Uso del Operador de ámbito o scope(::)
//tal como sigue

void cAcirculo::asignaRadio (float x)


{R=x;}
double cAcirculo::obtieneArea ()
{return (2*pi*R*R);}
double cAcirculo::obtieneLongitud()
{return (2*pi*R);}

void main () {
float q; char Rp;
for(;;){ system("cls");
cAcirculo rc1;
cout<<" Ingrese Radio= "; cin>>q;
rc1.asignaRadio (q);
cout<< " El Area del Circulo es = "<<rc1.obtieneArea()
<<endl << "La longitud del Circulo es = "
<< rc1.obtieneLongitud ()
<<mensaje;
cin>>Rp;
if(Rp=='N'||Rp=='n') break;
} }

//programa que permite sumar los N primeros términos impares haciendo uso de class,
//se usara operador scope

#include<iostream>
#include<process.h>
using namespace std;
class suma{
protected:
int i,impar,par,simpar;
long M,N,numero;
public:void leer();
void suimpar();
void visualizar();
};
void suma::leer(){
cout<<"Ingrese el Numero de Terminos :";
cin>>numero;}

void suma::suimpar(){
simpar=0;
impar=1;par=2;i=1;
cout<<"\nLa serie Impar :";

Ing. Daniel Osorio Maldonado Página 3


while(i<=numero)
{ cout<<' '<<impar;
simpar +=impar;
impar +=par;
i++;}
}
void suma::visualizar()
{ cout<<"\nLa suma de los primeros "<<numero
<<" Terminos es :"<<simpar;
}

void main(){
suma SI;
char rp;
do{system("cls");
SI.leer();
SI.suimpar();
SI.visualizar();
cout<<"\nOtra Suma [S][N] :";
cin>>rp;
}while(rp=='S'||rp=='s');
}

//Obtiene el Factorial de un numero


//y halla la suma inversa de los N factoriales
#include<iostream>
#include<process.h>
#define pi 2*asin(1.0)
#define mensaje "\n Otra Peueba [S][N]"

using namespace std;


class CFactorial {
protected:
long N;double F;
public:
void asigna(long M);
double Suma();
double SumFacto();
};
//Implementacion

void CFactorial::asigna(long M)
{N=M;}
double CFactorial::Suma(){
double S=0;long i=1;
while(i<=N){
S=S+i;
cout<<S<<' ';
i=i+1;
}
return(S);}

double CFactorial::SumFacto(){
double S1=0;long i=1;F=1;
while(i<=N){
F=F*i;
S1=S1+1.0/(F);

Ing. Daniel Osorio Maldonado Página 4


cout<<S1<<' ';
i=i+1;
}
cout<<endl;
return S1;
}
void main(){
long P;CFactorial Factor;
cout<<"\nIngrse el Numero de Terminos N = ";cin>>P;
Factor.asigna(P);
cout<<"\nLa suma de los N = "<<Factor.Suma()<<endl
<<"\nLa suma de los inversos factoriales = "<<Factor.SumFacto()<<endl;
system("pause");
}

//arreglos con objetos:


#include<iostream>
#include<stdlib.h>
using namespace std;
class cVector{
protected:
long N;
public:
void asignaN(long M);
void leeVec(long N,long Vec[]);
void escribeVec(long N,long Vec[]);
void menorVec(long N,long Vec[]);
void ordenaDes(long N,long Vec[]);
};
//Implementacion
void cVector::asignaN(long M)
{N=M;}
void cVector::leeVec(long N,long Vec[]){
for(int i=1;i<=N;i++)
Vec[i]=rand()%50;
}
void cVector::escribeVec(long N,long Vec[]){
cout<<'[';
for(int i=1;i<=N;i++)
cout<<Vec[i]<<' ';
cout<<']';
}
void cVector::menorVec(long N,long Vec[]){
long men=Vec[1];
for(int i=1;i<=N;i++)
if(Vec[i]<=men)
men=Vec[i];
cout<<men;
}

void cVector::ordenaDes(long N,long Vec[]){


long aux;
cout<<'[';
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++)
if(Vec[i]<=Vec[j]){
aux=Vec[i];
Vec[i]=Vec[j];

Ing. Daniel Osorio Maldonado Página 5


Vec[j]=aux;
}
for(int i=1;i<=N;i++)
cout<<Vec[i]<<' ';
cout<<']';
}

void main(){
long P,Vector[100];
cVector lista;
cout<<"\n Ingrese el tamanio del vector ";cin>>P;
lista.asignaN(P);
lista.leeVec(P,Vector);
cout<<"\nLos Valores del vector = ";
lista.escribeVec(P,Vector);
cout<<"\n Los valores ordenedos descendentemente ";
lista.ordenaDes(P,Vector);
cout<<endl;
system("pause");
}

//CONSTRUCTOR y DESTRUCTOR

//Programa que permite calcular la suma de una serie

#include<iostream>

#include<stdlib.h>

class Suma{

protected:

float a,b;

double S;

int N;

public:

Suma (float ,float );

Suma(int M);

double Sum_Serie(float, float,int );

};

Suma ::Suma(float x, float y)

Ing. Daniel Osorio Maldonado Página 6


{a=x;b=y;}

Suma::Suma(int M)

{N=M;}

double Suma::Sum_Serie(float a, float b,int N)

S=0;

for(int i=1;i<N; i++)

S+=a/((i*a+(2*i-1)*b));

return(S);

using namespace std;

void main(){

float p,q;int P;

cout<<"Ingres el Valor de de a= "; cin>>p;

cout<<"Ingres el Valor de de b= "; cin>>q;

cout<<"Ingres el Valor del Numero de Terminos = ";cin>>P;

Suma sum(p,q);

Suma NN(P);

sum.Sum_Serie(p,q,P);

cout<<"La suma de los primeros " <<P<<"Terminos ="


<<sum.Sum_Serie(p,q,P);

getch();

//**************************
#include<iostream>
#include<stdlib.h>
using namespace std;
class trapecio{
protected:
float b,B,h;
public:

Ing. Daniel Osorio Maldonado Página 7


trapecio();//Constructor sin parametros
trapecio(float x,float y,float z);//constructor con parametros
float cal_area();
~trapecio()
{cout<<"Liberando Memoria ";}
};
trapecio::trapecio()
{b=15;B=40;h=25;}
trapecio::trapecio(float x,float y,float z)
{b=x;B=y;h=z;}
float trapecio::cal_area()
{return((b+B)*h/2.0);}

void main(){
float p,q,r;trapecio trape1; trapecio trape2(20,50,30);
cout<<"\nEl Area del Trapecio con valores Inicializados "
<<trape1.cal_area();
cout<<"\nEl Area con Valores desde el main()"<<endl;
cout<<trape2.cal_area();
cout<<endl<<"Ahora con nValores Inicializados ";
cout<<"Ingrese base Menor ";cin>>p;
cout<<"Ingrese base Mayor ";cin>>q;
cout<<"INgrese haltura ";cin>>r;
trapecio trape(p,q,r);
cout<<"El Area del Trapecio es "<<trape.cal_area()<<endl;
system("pause");
}

//Mismo problema pero con valores aleatorios


#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
class trapecio{
protected:
float b,B,h;
public:
trapecio();//Constructor sin parametros
trapecio(float x,float y,float z);//constructor con parametros
float cal_area();
~trapecio()
{cout<<"Liberando Memoria ";}
};
trapecio::trapecio()
{b=rand()%100+1;B=rand()%100+1;h=rand()%100+1;}
trapecio::trapecio(float x,float y,float z)
{b=x;B=y;h=z;}
float trapecio::cal_area()
{return((b+B)*h/2.0);}

void main(){
srand((unsigned) time(NULL));
float p,q,r;trapecio trape1;//valores establecidos en el metodo
trapecio trape2(20,50,30);//valores Inicializados
cout<<"\nEl Area del Trapecio "<<endl
<<trape1.cal_area();
cout<<"\nEl Area con Valores desde el main()"<<endl;
cout<<trape2.cal_area();

Ing. Daniel Osorio Maldonado Página 8


cout<<endl<<"\nAhora con nValores Inicializados ";
cout<<"\nIngrese base Menor ";
p=rand()%100+1;
cout<<p;
cout<<"\nIngrese base Mayor ";
q=rand()%100+1;
cout<<q;
cout<<"\nIngrese haltura ";
r=rand()%100+1;
cout<<r;
trapecio trape(p,q,r);
cout<<"\nEl Area del Trapecio es "<<trape.cal_area()<<endl;
system("pause");
}

//Programa que calcula el Area de un triangulo


//halla el Area y el semiperimetro
#include<iostream>
#include<stdlib.h>
#include<math.h>

using namespace std;


class cTriang{
protected:
float L1,L2,L3,sp;
double d;

public:
cTriang();
cTriang(float ,float ,float );
float semiper();
float Cal_Area();
~cTriang()
{cout<<"\nLiberando Memoria....";}
};

cTriang::cTriang()
{L1=20;L2=30;L3=40;}

cTriang::cTriang(float a, float b, float c)


{L1=a;L2=b;L3=c;}

float cTriang::semiper(){
sp=(L1+L2+L3)/2.0;
return(sp);
}

float cTriang::Cal_Area(){
sp=(L1+L2+L3)/2.0;
d=(sp*(sp-L1)*(sp-L2)*(sp-L3));
if (d)
return(sqrt(d));
else
cout<<"\nLos lados no forman un Triangulo.Ingrese Otros Valores";
}
void main(){
float x,y,z;
cTriang figura1;

Ing. Daniel Osorio Maldonado Página 9


cout<<"\nEl semiperimetro con valores inicializados "<<figura1.semiper()<<endl
<<"\nEl area con valores ininicilizados "<<figura1.Cal_Area();
cout<<"\nIngrese el valor de lado1 ="; cin>>x;
cout<<"\nIngrese el valor de lado2 ="; cin>>y;
cout<<"\nIngrese el valor de lado3 ="; cin>>z;
cTriang figura2(x,y,z);
cout<<"\nEl semiperimetro es "<<figura2.semiper()<<endl
<<"\nEl area del Triangulo ="<<figura2.Cal_Area()<<endl;
system("pause");
}

#include <iostream>
#include<stdlib.h>
using namespace std;
class Caja {
protected:
double longitud, anchura, altura;
public:
Caja(double dim1, double dim2, double dim3);//Constructor
Caja();//Constructor
double volumen ();//Constructor
~Caja(){cout<<"Liberando Memoria ";}//Destructor
};
//Implementacion
Caja::Caja()
{longitud=6;anchura=2;altura=4;};
Caja :: Caja (double dim1, double dim2, double dim3) {
longitud = dim1;
anchura = dim2;
altura = dim3;
};

double Caja:: volumen () {


return longitud * anchura * altura;

};

void main () {
Caja medida;
medida.volumen();
cout<<"El Volumen de una caja con medidas es "<<medida.volumen()<<endl;
Caja pequeña(5, 4, 10), mediana (10, 6, 20), grande(20, 10, 30);
cout <<"El volumen de la caja grande es "
<< grande.volumen() <<'\n';
system("pause");
}

#include <iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
class Caja {
protected:
double longitud, anchura, altura;
public:
Caja (double dim1, double dim2, double dim3);

Ing. Daniel Osorio Maldonado Página 10


Caja (void);
void escribe();
double volumen (void);
~Caja(){cout<<"Liberando Memoria ";}
};
Caja :: Caja (double dim1, double dim2, double dim3) {
longitud = dim1;anchura = dim2;altura = dim3;
};
Caja :: Caja (void) {
longitud = rand()%91+10;
anchura =rand()%91+10;
altura =rand()%91+10;
};
void Caja::escribe()
{cout<<"\nlongitud = "<<longitud<<endl
<<"ancho = "<<anchura<<endl
<<"altura = "<<altura;};

double Caja:: volumen () {


return longitud * anchura * altura;
};

void main () {
Caja medida;srand((unsigned)time (NULL));
medida.volumen();
cout<<"El Volumen de una caja con medidas establecidas = ";
medida.escribe();
cout<<"\nEs "<<medida.volumen()<<endl;
Caja pequeña(5, 4, 10), mediana (10, 6, 20), grande(20, 10, 30);
cout <<"El volumen de la caja grande es "
<< grande.volumen() <<'\n';
system("pause");
}

//HERENCIA
#include<iostream>
#include<stdlib.h>
using namespace std;
class CCalculo{ // Clase Base
protected:
float n1,n2;
};

class CSuma:public CCalculo// Clase Derivada


{
private:
float suma;
public:
CSuma();//constructor
CSuma(float a,float b);//constructor
float ObtSuma();
double ObtCociente();
};
CSuma::CSuma()
{n1=10;n2=20;}

Ing. Daniel Osorio Maldonado Página 11


CSuma::CSuma(float a,float b)
{n1=a;n2=b;}
float CSuma::ObtSuma()
{return (n1+n2);}

double CSuma::ObtCociente(){
double D;
if(n2>0){
D=n1/n2;}
else{
cout<<"\n No es posible la Division "<<endl;
system("pause");
exit(0);
}
return D;
}
using namespace std;
void main(){
float x,y;
CSuma opera1;
cout<<"\n la suma inicializada es ";
cout<<opera1.ObtSuma();
cout<<"\nIngrese operando 1 = ";cin>>x;
cout<<"Ingrese operando 2 = ";cin>>y;
CSuma opera2(x,y);
cout<<"\n La Suma es "<<opera2.ObtSuma()<<endl
<<"\nLa Dision es "<<opera2.ObtCociente()<<endl;
system("pause");
}

//*******************************************************

//DERIVA DE UN CUADRILATERO
#include<iostream>
#include<stdlib.h>
using namespace std;
class Ccuadri{
protected:
float lado;

public:
void Leer();
void Ver();
float area();
};
void Ccuadri::Leer()
{cout<<"Ingrese el Largo = ";cin>>lado;}
void Ccuadri::Ver()
{cout<<"El Largo tiene por Valor = "<<lado<<endl;}

float Ccuadri::area(){
cout<<"\nEl Area del cuadrado es ";
return(lado*lado);
}

class Crect: public Ccuadri{


protected:
float ancho;

Ing. Daniel Osorio Maldonado Página 12


public:
void Leer()
{Ccuadri ::Leer();
cout<<"Ingrese el Ancho = ";cin>>ancho;
}
void Ver(){
Ccuadri::Ver();
cout<<"El Ancho tiene por valor = "<<ancho<<endl;
}
float Crect::area(){
cout<<"\nEl Area del rectangulo es ";
return(lado*ancho);
}
};

void main(){
Ccuadri cuad; Crect cr;
cr.Leer();
cr.Ver();
cout<<cr.area();
cout<<cuad.area();
cout<<endl;
system("pause");
}

//Una clase con un lado como base, se va ha derivar el area de


//un trapecio
#include<iostream>
#include<stdlib.h>
using namespace std;
class lado1{
protected:
float x;

public:
void setx(float n);
void showx();
};

void lado1::setx (float n)


{x=n;}
void lado1::showx ()
{cout<<x<<' ';}

//Herencia publica
class trapecio : public lado1
{
private:
float y,z;

public:
void sety(float n,float m)
{y=n;z=m;}
void showy()
{cout<<y<<' '<<z;}
float Cal_Trape()

Ing. Daniel Osorio Maldonado Página 13


{return(x+y)*z/2.0;}
};

void main(){
trapecio ob;
int n,m,p;
cout<<"\nIngrese la base menor :";cin>>n;
ob.setx(n);//miembro de acceso de la clase base
cout<<"\nIngrese la base Mayor :";cin>>m;
cout<<"\nIngrese la Altura :";cin>>p;
ob.sety(m,p);//miembro de acceso de la clase
cout<<"\nLos Valores Mostrados son :";
ob.showx();//miembro de acceso de la clase base
ob.showy();//miembro de acceso de la clase derivada
cout<<"\nEl Area del Trapecio es ="<<ob.Cal_Trape ();
cout<<endl;
system("pause");
}

//Una Ecuacion de 1er grado con una incognita que servira para derivar
//una ecuacion de 2do grado tambien con una incognita
#include<iostream>
#include<stdlib.h>
#include<math.h>
#include<iomanip>
using namespace std;
class ecua1{
protected:
float a,b;
double x;
public:
ecua1();
ecua1(float p,float q);
double sol1();
~ecua1()
{cout<<"\nLiberando Memoria...";}
};
ecua1::ecua1()
{a=3;b=2;}
ecua1::ecua1(float p,float q)
{a=p;b=q;}
double ecua1::sol1(){
if(a==0)
cout<<"\nSin Solucion....";
else if(b==0)
cout<<"\n0";
else
x=(-1)*b/a;
return(x);
}

class ecua2:public ecua1{


protected:
float c;
double x1,x2;
public:
ecua2();
ecua2(float m,float n,float r);

Ing. Daniel Osorio Maldonado Página 14


void sol2();
~ecua2()
{cout<<"Liberando Memoria...";}
};
ecua2::ecua2()
{a=4;b=6;c=3;}
ecua2::ecua2(float m,float n,float r)
{a=m;b=n;c=r;}
void ecua2::sol2(){
if(a==0&&b==0)
cout<<"\nNo hay solucion...";
else if(a==0){
x1=-b/c;
cout<<x1;}
else if(b==0){
x1=a/c;
x2=-a/c;}
else
x1=-b+sqrt(b*b-4*a*c)/2*a;
x2=-b-sqrt(b*b-4*a*c)/2*a;
cout<<"X1= "<<x1<<endl
<<"X2= "<<x2;
}
void main(){
float p,q;
double x1,x2;
ecua1 ecua01;
cout<<"\n La Solucion de la Primera es "<<ecua01.sol1();
cout<<"\nIngrese el Valor de a = ";cin>>x1;
cout<<"\nIngrese el Valor de b = ";cin>>x2;
ecua1 ecua001(x1,x2);
cout<<"\nLa solucion con parametros es "<<ecua001.sol1();
ecua2 ecua20;
cout<<"Solucion de 2da ecuacion es ";
ecua20.sol2();
system("pause");
}

#include<iostream>
#include<stdlib.h>
#include<math.h>
#define Pi 2*asin(1.0)

using namespace std;


class Circulo{
protected:
double radio;

public:
Circulo(double =1.0);
double calval();
};
//Implementacion de la clase
Circulo::Circulo(double r) //constructor
{radio=r;}
//calcula el area del circulo
double Circulo::calval()
{return(Pi*radio*radio);}

Ing. Daniel Osorio Maldonado Página 15


// Declaracion de clase donde
//Cilindro se deriva de circulo
class Cilindro: public Circulo{
protected:
double largo;//agrega un miembro adicional de datos y
//dos miembros adicionales de funciones o metodos
public:
Cilindro(double r=1.0,double l=1.0):Circulo(r),largo(1){}
double calval();
};

double Cilindro::calval(void)//esto calcula un volumen


{return(largo*Circulo::calval());//observe la llamada a la funcion base
}

void main(){
Circulo circulo_1,circulo_2(2);//crea 02 objetos circulo
Cilindro cilindro_1(3,4); //crea un objeto cilindro
cout<<"El Area de circulo_1 es"<< circulo_1.calval()<<endl;
cout<<"El Area de circulo_1 es"<< circulo_2.calval()<<endl;
cout<<"El Volumen del cilindro_1 es "<<cilindro_1.calval()<<endl;
circulo_1=cilindro_1;//asigna un cilindro a un circulo
cout<<"\nEl area del circulo_1 es ahora "<<circulo_1.calval()<<endl;
system("pause");
}

Ing. Daniel Osorio Maldonado Página 16

You might also like