Está en la página 1de 16

//CONSTRUCTORES DESTRUTORES

/*
#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)));
}
using namespace std;
void main(){
Fuerzas Fs;

Ing Daniel Osorio Maldonado

Pgina 1

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;
class cAcirculo {
protected:
float R;

Ing Daniel Osorio Maldonado

Pgina 2

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 trminos 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 :";
while(i<=numero)
{ cout<<' '<<impar;
simpar +=impar;

Ing Daniel Osorio Maldonado

Pgina 3

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);
cout<<S1<<' ';
i=i+1;
}

Ing Daniel Osorio Maldonado

Pgina 4

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];
Vec[j]=aux;
}
for(int i=1;i<=N;i++)

Ing Daniel Osorio Maldonado

Pgina 5

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

Ing Daniel Osorio Maldonado

Pgina 6

#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();
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();

Ing Daniel Osorio Maldonado

Pgina 7

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

Ing Daniel Osorio Maldonado

Pgina 8

};
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 pequea(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 pequea(5, 4, 10), mediana (10, 6, 20), grande(20, 10, 30);
cout <<"El volumen de la caja grande es "

Ing Daniel Osorio Maldonado

Pgina 9

<< 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;}
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");
}
//*******************************************************

Ing Daniel Osorio Maldonado

Pgina 10

//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;
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>

Ing Daniel Osorio Maldonado

Pgina 11

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()
{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");
}

//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:

Ing Daniel Osorio Maldonado

Pgina 12

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))) ;}
//declaracin 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();
};
//seccin de implementacin 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 ecuacin y el rea del circulo es";
inst1.area();
cout<<endl;
system("pause");
}

Ing Daniel Osorio Maldonado

Pgina 13

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

Ing Daniel Osorio Maldonado

Pgina 14

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

Ing Daniel Osorio Maldonado

Pgina 15

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

Pgina 16