Constructor y Destructor

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 12

/*

//CONSTRUCTOR y DESTRUCTOR
#include<iostream>
#include<stdlib.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=15;B=40;h=25;}//Inicializando valores
trapecio::trapecio(float x,float y,float z)
{b=x;B=y;h=z;}//Asignando Valores
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<<"\nAhora con Valores Inicializados ";
cout<<"\nIngrese base Menor ";cin>>p;
cout<<"\nIngrese base Mayor ";cin>>q;
cout<<"\nIgrese haltura ";cin>>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;
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);
Caja();
double volumen ();
~Caja()
{cout<<"Liberando Memoria ";}
};
//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);
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();
cSuma(float a,float b);
float ObtSuma();
double obtcociente();
};
cSuma::cSuma()
{n1=10;n2=20;}

cSuma::cSuma(float a,float b)
{n1=a;n2=b;}
float cSuma::ObtSuma()
{return (n1+n2);}
double cSuma::obtcociente(){
if(n2==0)
cout<<"\nSin Solucion...";
else
return(n1/n2);
}

void main(){
float x,y;
cSuma opera1;
cout<<"\n la suma inicializada es ";
cout<<opera1.ObtSuma()<<endl<<"\nEl Cociente Inicializado es "
<<opera1.obtcociente();
cout<<"\nIngrese operando 1 = ";cin>>x;
cout<<"Ingrese operando 2 = ";cin>>y;
cSuma opera2(x,y);
cout<<"\n La Suma es "<<opera2.ObtSuma()<<"\nEl Cociente es ...=
"<<opera2.obtcociente()<<endl;
system("pause");
}

/////////////////////////////////////////////////
#include<iostream>
#include<stdlib.h>
#include<math.h>
using namespace std;
class cuadro{
protected:
float a;
public:
cuadro();
cuadro(float m);
float area();
};
cuadro::cuadro()
{a=10;}
cuadro::cuadro(float m)
{a=m;}
float cuadro::area()
{return(a*a);}

class rectangulo:public cuadro{


protected:
float b;
public:
rectangulo();
rectangulo(float m,float n);
float area();
};
rectangulo::rectangulo()
{b=20;}

rectangulo::rectangulo(float m,float n)
{a= m;b=n;}

float rectangulo::area()
{return(a*b);}

void main(){
float p, q;
cuadro c1;
cout<<"Area sin parametro= "<<endl<<c1.area()<<endl;
cout<<"Area con parametro desde teclado "<<endl;
cout<<"a= ";
cin>>p;
cuadro c2(p);
cout<<"El area= "<<endl<<c2.area();

//Clase derivada Rectangulo de cuadro


rectangulo r1;//sin parametro
cout<<"\nEl area del rectangulo= "<<endl<<r1.area();

cout<<"\nArea con parametro desde teclado "<<endl;


//cout<<"Ingrese a= ";cin>>p;
cout<<"b= ";cin>>q;
rectangulo r2(p,q);
cout<<r2.area()<<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 leex(float n);
void escribex();
double Area();
};

void lado1::leex(float n)
{x=n;}
void lado1::escribex()
{cout<<"Lado= "<<x<<endl;}
double lado1::Area()
{return(x*x);}

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

public:
void leeyz(float n,float m);
void escribeyz();
double Area();
};
void trapecio::leeyz(float n,float m)
{y=n;z=m;}

void trapecio::escribeyz()
{cout<<y<<' '<<z;}

double trapecio::Area()
{return(x+y)*z/2.0;}
using namespace std;

void main(){
trapecio ob;
lado1 cuadrado;
int n,m,p;
cout<<"\nIngrese la base menor :";cin>>n;
cuadrado.leex(n);
cout<<"El area del Cuadrado= "<<cuadrado.Area();
ob.leex(n);//miembro de acceso de la clase base
cout<<"\nIngrese la base Mayor :";cin>>m;
cout<<"\nIngrese la Altura :";cin>>p;
ob.leeyz(m,p);//miembro de acceso de la clase
cout<<"\nLos Valores Mostrados son :";
ob.escribex();//miembro de acceso de la clase base
ob.escribeyz();//miembro de acceso de la clase derivada
cout<<"\nEl Area del Trapecio es ="<<ob.Area();
cout<<endl;
system("pause");
}

/*

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

//Derivando de la clase Punto otra clase llamada


//distancia y luego otra clase que me permita hallar el
//Area del Circulo
#include<iostream>
#include<stdlib.h>
#include<math.h>
#include<iomanip>
#define pi 2.0*asin(1.0)
using namespace std;
class Punto{
protected:
float x, y;
float radio;
float x2, x1, y2, y1;
public:
Punto(float r);
Punto(float a, float b, float c, float d);
~Punto()
{cout<<"LIberando Memoria ";}
double area();
double distancia();
};

//Seccion de Implementacion para Punto


Punto::Punto(float r)
{radio =r;}
Punto::Punto(float a, float b, float c, float d)
{ x1=a; y1=b; x2=c; y2=d; }
double Punto::area()
{ return(0); }
double Punto::distancia()
{ return(sqrt(pow(x2-x1,2)+pow(y2-y1,2))) ;}

//declaración de clase donde la clase


//Circulo se deriva de Punto

class Circulo: public Punto {


protected:
float x, y;
public:
Circulo (float radio, float m, float n): Punto(radio), x(m), y(n){}
~Circulo()
{cout<<"Liberando Memoria ";}
double distancia();
double area();
};
//sección de implementación para el circulo
double Circulo::area( )
{ cout<<"(x-"<<x<<")^2+(y-"<<y<<")^2="<<radio<<"^2";
return(pi*powf(radio,2)); }

void main(){
float x1, x2, y1, y2;
float a, b, c;
cout<<"\n Las coordenadas del primer punto son: ";
cin>>x1;cin>>y1;
cout<<"\nLas coordenadas del segundo punto son: ";
cin>>x2;cin>>y2;
Punto inst(x1,y1,x2,y2);
cout<<"\nLa distancia entre estos puntos es:"
<<inst.distancia( )<<endl;
cout<<"\nLas coordenadas del circulo son:";
cin>>a;cin>>b;
cout<<"\n Ingrese el valor del radio: ";
cin>>c;
Circulo inst1(a,b,c);
cout<<"\n La ecuación y el área del circulo es";
inst1.area();
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,disc;
public:
ecua2();
ecua2(float m,float n,float r);
void sol2();
~ecua2()
{cout<<"Liberando Memoria...";}
};
ecua2::ecua2()
{a=2;b=6;c=3;}
ecua2::ecua2(float m,float n,float r)
{a=m;b=n;c=r;}
void ecua2::sol2(){
if(a==0)
cout<<"X1 = "<<(-1)*b/c;
else
disc=((b*b)-(4*a*c));
if(disc<0)
cout<<"\nRaices Imaginarias...";
else
cout<<"\nX1 = "<<-b-sqrt(disc)/(2*a)<<endl
<<"\nX2 = "<<-b+sqrt(disc)/(2*a)<<endl;
}
void main(){
float p,q;
double x1,x2,x3;
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();
cout<<"\n\nDatos para la Solucion de la ecuacion de 2do Grado: "<<endl
<<"\nSin datos de Ingreso ";
ecua2 ecua20;
ecua20.sol2();
cout<<"\nIngrese el Valor de a = ";cin>>x1;
cout<<"\nIngrese el Valor de b = ";cin>>x2;
cout<<"\nIngrese el valor de c = ";cin>>x3;
ecua2 ecua200(x1,x2,x3);
cout<<"\nSolucion de 2da ecuacion con parametros es ";
ecua200.sol2();
cout<<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();
void Cal_Area();
~cTriang()
{cout<<"\nLiberando Memoria....";}
};

cTriang::cTriang()
{L1=2;L2=3;L3=5;}

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);
}

void cTriang::Cal_Area(){
sp=semiper();//(L1+L2+L3)/2.0;Triangulo
d=(sp*(sp-L1)*(sp-L2)*(sp-L3));
if (d>0)
cout<<"\nEl Area del Triangulo es "<<(sqrt(d));
else
cout<<"\nLos lados no forman un Triangulo...Ingrese Otros Valores"<<endl;
}

void main(){
float x,y,z;
cTriang figura1;
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();
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::~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....";
system("pause");
}
else if(b==0)
cout<<"\nX= 0";
else
x=(-1)*b/a;
return(x);
}

class ecua2:public ecua1{


protected:
float c;
double x1,x2,disc;
public:
ecua2();//constructor
ecua2(float m,float n,float r);//constructor
void sol2();
ecua2::~ecua2()
{cout<<"Liberando Memoria...";}
};
ecua2::ecua2()
{a=2;b=6;c=3;}

ecua2::ecua2(float m,float n,float r)


{a=m;b=n;c=r;}

void ecua2::sol2(){
if(a==0)
cout<<"X1 = "<<(-1)*b/c;
else
disc=((b*b)-(4*a*c));
if(disc<0)
cout<<"\nRaices Imaginarias...";
else
cout<<"\nX1 = "<<-b-sqrt(disc)/(2*a)<<endl
<<"\nX2 = "<<-b+sqrt(disc)/(2*a)<<endl;
}

void main(){
float p,q;
double x1,x2,x3;
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();
cout<<"\n\nDatos para la Solucion de la ecuacion de 2do Grado: "<<endl
<<"\nSin datos de Ingreso ";
ecua2 ecua20;
ecua20.sol2();
cout<<"\nIngrese el Valor de a = ";cin>>x1;
cout<<"\nIngrese el Valor de b = ";cin>>x2;
cout<<"\nIngrese el valor de c = ";cin>>x3;
ecua2 ecua200(x1,x2,x3);
cout<<"\nSolucion de 2da ecuacion con parametros es ";
ecua200.sol2();
cout<<endl;
system("pause");
}

También podría gustarte