Documentos de Académico
Documentos de Profesional
Documentos de Cultura
#include<iostream>
using namespace std;
struct MiTipo{
int x;
double y;
char z;
};
int main(){
MiTipo *ap;
MiTipo a;
ap=&a; //operador de direccion &
cout<<"direccion= "<<ap<<endl;
cout<<"Direccion de a + 1 = "<<ap+1<<endl;
return 0;
}
Ejemplo 1
Ejemplo 2
Ejemplo 3
#include<iostream>
using namespace std;
int main(){
// tipo Nombre[tam] Arreglo unidimensional -> Vector
int A[10]; // UN ARREGLO TAMBIEN ES UN APUNTADOR
A[0]=12345;
cout<<*A<<endl;
return 0;
}
Ejemplo 4
Ejemplo 5
Ejemplo 7
// EJEMPLO 7
/** UTILIZANDO EL CONCEPTO DE FUNCIONES AMIGAS DE UNA CLASE
REALIZAR UN POO QUE REALICE LA SUMA Y RESTA DE DOS NUMEROS
COMPLEJOS DONDE CADA NUMERO COMPLEJO SEA UN OBJETO, PRESENTANDOLO
COMO UN MENU REPETITIVO **/
#include<iostream>
#include<conio.h>
#include<ctype.h>
using namespace std;
class Complejo{
private:
float Real;
float Imaginario;
public:
// CONSTRUCTOR DE OFICIO
void LeeDatos(); // PROTOTIPO DE LA FUNCION
void ImprimeDatos();
friend Complejo Suma(Complejo,Complejo);
friend Complejo Resta(Complejo,Complejo);
};
Complejo Resta(Complejo Sumando1,Complejo Sumando2){
Complejo Resultado;
Resultado.Real=Sumando1.Real-Sumando2.Real;
Resultado.Imaginario=Sumando1.Imaginario-Sumando2.Imaginario;
return Resultado;
}
Complejo Suma(Complejo Sumando1,Complejo Sumando2){
Complejo ComplejoSuma;
ComplejoSuma.Real=Sumando1.Real+Sumando2.Real;
ComplejoSuma.Imaginario=Sumando1.Imaginario+Sumando2.Imaginario;
return ComplejoSuma;
}
void Complejo::ImprimeDatos(){
cout<<"("<<Real;
if(Imaginario>=0)cout<<"+";
cout<<Imaginario<<"i)"<<endl;
}
void Complejo::LeeDatos(){
cout<<"Da la parte real de este numero complejo= ";
cin>>Real;
cout<<"Da la parte imaginaria= ";
cin>>Imaginario;
}
int main(){
Complejo A,B,Resultado;
char opcion;
do{
system("cls");
cout<<"Bienvenido a las operaciones entre numeros complejo"<<endl;
cout<<"dame los datos del primer complejo"<<endl;
A.LeeDatos();
cout<<"Dame los datos del segundo complejo"<<endl;
B.LeeDatos();
cout<<"Que quieres hacer"<<endl;
cout<<"A)La suma"<<endl;
cout<<"B)La resta"<<endl;
cout<<"S)alir"<<endl;
cout<<"da la opcion= ";
opcion=getche();
opcion=toupper(opcion);
switch(opcion){
case 'A':
Resultado=Suma(A,B);
cout<<endl<<"El resultado de la suma es= ";
Resultado.ImprimeDatos();
break;
case 'B':
Resultado=Resta(A,B);
cout<<endl<<"Resultado de la resta= ";
Resultado.ImprimeDatos();
break;
case 'S':
cout<<endl<<"Adios"<<endl;
break;
default:
cout<<endl<<"Opcion no valida"<<endl;
}
system("pause");
}while(opcion!='S'); // MENU REPETITIVO
return 0;
}
/**EJEMPLO 12***/
#include<iostream>
#include<math.h>
using namespace std;
class Vector{
private:
float x,y;
public:
Vector(float,float); // CONSTRUCTOR GENERAL
~Vector();
friend class Operaciones;
};
Vector::Vector(float a=0,float b=0){
x=a;
y=b;
}
Vector::~Vector(){
cout<<"Vector destruido"<<endl;
}
class Operaciones{
Vector A;
public:
void LeeDatos();
void ImprimeDatos();
float Magnitud();
Operaciones();
~Operaciones();
};
void Operaciones::LeeDatos(){
cout<<"Da la componente x= ";
cin>>A.x;
cout<<"Da la componente y= ";
cin>>A.y;
}
void Operaciones::ImprimeDatos(){
cout<<"Componete x= "<<A.x<<endl;
cout<<"Componete y= "<<A.y<<endl;
}
float Operaciones::Magnitud(){
return (sqrt(A.x*A.x+A.y*A.y));
}
Operaciones::Operaciones(){
cout<<"Hola soy el constructor de operaciones "<<endl;
}
Operaciones::~Operaciones(){
cout<<"Destructor de operaciones"<<endl;
}
int main(){
Operaciones MiVector;
MiVector.LeeDatos();
MiVector.ImprimeDatos();
cout<<"La magnitud del vector es= "<<MiVector.Magnitud()<<endl;
return 0;
}
#include<iostream>
using namespace std;
class Matriz{
float **A;
int Filas,Columnas;
public:
Matriz(); // CONSTRUCTOR VACIO
~Matriz(); // DESTRUCTOR
Matriz(Matriz&); // CONSTRUCTOR COPIA
friend ostream& operator<<(ostream&,const Matriz&);
friend istream& operator>>(istream&,Matriz&);
};
Matriz::Matriz(){
int i,j;
cout<<"Cuantas filas= ";
cin>>Filas;
cout<<"Cuantas Columnas= ";
cin>>Columnas;
A=new float*[Filas];
for(i=0;i<Filas;i++)
A[i]=new float[Columnas];
for(i=0;i<Filas;i++)
for(j=0;j<Columnas;j++)
A[i][j]=0;
}
Matriz::Matriz(Matriz&Copia){
int i,j;
Filas=Copia.Filas;
Columnas=Copia.Columnas;
A=new float*[Filas];
for(i=0;i<Filas;i++)
A[i]=new float[Columnas];
for(i=0;i<Filas;i++)
for(j=0;j<Columnas;j++)
A[i][j]=Copia.A[i][j];
}
Matriz::~Matriz(){
for(int i=0;i<Filas;i++)
delete []A[i];
delete []A;
}
ostream& operator<<(ostream& Salida,const Matriz& Objeto){
int i,j;
for(i=0;i<Objeto.Filas;i++){
for(j=0;j<Objeto.Columnas;j++){
Salida<<Objeto.A[i][j]<<'\t';
}
Salida<<endl;
}
return Salida;
}
istream& operator>>(istream& Entrada,Matriz& Objeto){
int i,j;
for(i=0;i<Objeto.Filas;i++){
for(j=0;j<Objeto.Columnas;j++){
cout<<"Da la fila "<<i<<","<<j<<"= ";
Entrada>>Objeto.A[i][j];
}
}
}
int main(){
Matriz A;
cout<<"Da la matriz A"<<endl;
cin>>A;
Matriz B=A;
cout<<"La matriz B es"<<endl<<B;
return 0;
}
Ejemplo 17
#include <iostream>
using namespace std;
//* CLASE BASE (DA LA HERENCIA)
class Persona{
protected:
string Nombre;
int Edad;
public:
Persona(string,int);
~Persona();
friend istream& operator>>(istream&,Persona&);
friend ostream& operator<<(ostream&,Persona&);
};
Persona::Persona(string N="",int E=0){
cout<<"Objeto persona construido"<<endl;
Nombre=N;
Edad=E;
}
Persona::~Persona(){
cout<<"Objeto Persona destruido"<<endl;
}
istream& operator>>(istream&Entrada,Persona&P){
cout<<"Da el nombre: ";
fflush(stdin);
getline(cin,P.Nombre);
cout<<"Da la edad= ";
Entrada>>P.Edad;
return Entrada;
}
ostream& operator<<(ostream&Salida,Persona&P){
Salida<<"Nombre: "<<P.Nombre<<endl;
Salida<<"Edad= "<<P.Edad<<endl;
return Salida;
}
// CLASE DERIVADA (RECIBE LA HERENCIA)
class Alumno:public Persona {
float Calificacion;
public:
Alumno(float,string,int);
~Alumno();
// LA AMISTAD ES UNA CUALIDAD DE LA P.O.O. QUE NO SE HEREDA
friend istream& operator>>(istream&,Alumno&);
friend ostream& operator<<(ostream&,Alumno&);
};
// EL CONSTRUCTOR DE UNA CLASE DERIVADA DEBE MANDAR LLAMAR AL
// CONSTRUCTOR DE SU CLASE BASE
Alumno::Alumno(float C=0,string Name="",int E=0):Persona(Name,E){
cout<<"Objeto alumno construido"<<endl;
Calificacion=C;
}
Alumno::~Alumno(){
cout<<"Objeto Alumno destruido"<<endl;
}
istream& operator>>(istream&Entrada,Alumno&A ){
cout<<"Da el nombre: ";
fflush(stdin);
getline(cin,A.Nombre);
cout<<"Da la edad= ";
Entrada>>A.Edad;
cout<<"Da la calificacion= ";
Entrada>>A.Calificacion;
return Entrada;
}
ostream& operator<<(ostream&Salida,Alumno& A ){
Salida<<"Nombre: "<<A.Nombre<<endl;
Salida<<"Edad= "<<A.Edad<<endl;
Salida<<"Calificacion= "<<A.Calificacion<<endl<<endl;
return Salida;
}
int main(){
Alumno Yo;
cin>>Yo;
cout<<"Alumno: "<<endl<<Yo;
Persona Tu;
cin>>Tu;
cout<<"Persona:"<<endl<<Tu;
return 0;
}
Ejemplo 22
#include<iostream>
#include<time.h>
#include<ctype.h>
#include<conio.h>
#include<windows.h>
using namespace std;
class Aleatorio{
int Numero;
public:
Aleatorio();
~Aleatorio();
int GeneraUnNumeroAleatorio();
};
Aleatorio::Aleatorio(){
Numero=0;
srand(time(NULL));
}
Aleatorio::~Aleatorio(){
}
int Aleatorio::GeneraUnNumeroAleatorio(){
return(rand());
}
int main(){
Aleatorio Generador;
int x;
char respuesta;
cout<<"BIENVENIDO A MI JUEGO DE VOLADOS"<<endl;
for(int i=0;i<10;i++){
system("cls");
cout<<"Que pides? "<<endl;
do{
cout<<endl;
cout<<"a)guila"<<endl;
cout<<"s)ol"<<endl;
respuesta=getche();
respuesta=tolower(respuesta);
}while(respuesta!='a'&&respuesta!='s');
x=Generador.GeneraUnNumeroAleatorio()%2;
if(x==0)
cout<<endl<<"Cayo aguila"<<endl;
if(x==1)
cout<<endl<<"cayo sol"<<endl;
if( (respuesta=='a'&&x==0)||(respuesta=='s'&&x==1) )
cout<<endl<<"Ganaste!!!"<<endl;
else
cout<<endl<<"Perdiste :-( "<<endl;
cout<<x<<endl;
system("pause>null");
}
return 0;
}
Ejemplo 23
#include<iostream>
#include<time.h>
#include<ctype.h>
#include<conio.h>
#include<windows.h>
using namespace std;
class Aleatorio{
int Numero;
public:
Aleatorio();
~Aleatorio();
int GeneraUnNumeroAleatorio();
};
Aleatorio::Aleatorio(){
Numero=0;
srand(time(NULL));
}
Aleatorio::~Aleatorio(){
}
int Aleatorio::GeneraUnNumeroAleatorio(){
return(rand());
}
int main(){
Aleatorio Generador;
Sleep(1000);
Aleatorio Generador2;
int x,y;
char respuesta;
cout<<"BIENVENIDO A MI JUEGO DE DADOS"<<endl;
for(int i=0;i<10;i++){
x=Generador.GeneraUnNumeroAleatorio()%6+1;
y=Generador2.GeneraUnNumeroAleatorio()%6+1;
cout<<"dados= "<<x<<","<<y<<endl;
system("pause>null");
}
return 0;
}
Ejemplo 24
#include<iostream>
#include<time.h>
#include<ctype.h>
#include<conio.h>
#include<windows.h>
using namespace std;
class Aleatorio{
int Numero;
public:
Aleatorio();
~Aleatorio();
int GeneraUnNumeroAleatorio();
};
Aleatorio::Aleatorio(){
Numero=0;
srand(time(NULL));
}
Aleatorio::~Aleatorio(){
}
int Aleatorio::GeneraUnNumeroAleatorio(){
return(rand());
}
int main(){
Aleatorio Generador;
int x;
char c;
cout<<"BIENVENIDO A MI PALABRA"<<endl;
for(int i=0;i<10;i++){
x=Generador.GeneraUnNumeroAleatorio()%26+65;
c=x;
cout<<c;
}
cout<<endl;
return 0;
}
Ejemplo 25
// FUNCIONES VIRTUALES
/* PUEDEN EXISTIR FUNCIONES CON EL MISMO NOMBRE EN DOS CLASES DIFERENTE
DE TAL MANERA QUE UNA LE DA HERENCIA A LA OTRA, PUDIENDOSE ACCESAR
A CADA UNA DE ESTAS FUNCIONES POR MEDIO DE UN APUNTADOR Y ESTE
APUNTADOR DEBE DEL TIPO DE LA CLASE BASE**/
#include <iostream>
#include<math.h>
using namespace std;
class Vector2D{
protected:
float x,y;
public:
Vector2D(float,float);
~Vector2D();
virtual void LeeDatos();
virtual float Magnitud();
};
Vector2D::Vector2D(float a=0,float b=0){
x=a;
y=b;
}
Vector2D::~Vector2D(){
}
void Vector2D::LeeDatos(){
cout<<"Da la coordenada x= ";
cin>>x;
cout<<"Da la coordenada y= ";
cin>>y;
}
float Vector2D::Magnitud(){
return(sqrt(pow(x,2)+pow(y,2)));
}
class Vector3D:public Vector2D{
protected:
float z;
public:
Vector3D(float,float,float);
~Vector3D();
virtual void LeeDatos();
virtual float Magnitud();
};
Vector3D::Vector3D(float a=0,float b=0, float c=0):Vector2D(a,b){
z=c;
}
Vector3D::~Vector3D(){
}
void Vector3D::LeeDatos(){
cout<<"Da la coordenada x= ";
cin>>x;
cout<<"Da la coordenada y= ";
cin>>y;
cout<<"Da la coordenada z= ";
cin>>z;
}
float Vector3D::Magnitud(){
return(sqrt(x*x+y*y+z*z));
}
int main(){
Vector2D A;
Vector3D B;
Vector2D* ap;
ap=&A;
cout<<"Lectura de datos del vector 2D"<<endl;
ap->LeeDatos();
cout<<"Su magnitud es= "<<ap->Magnitud()<<endl;
cout<<"Lectura de datos del vector 3D"<<endl;
ap=&B;
ap->LeeDatos();
cout<<"Su magnitud es= "<<ap->Magnitud()<<endl;
return 0;
}
Ejemplo 26
#include<iostream>
using namespace std;
class Animales{
protected:
string Especie;
public:
Animales();
~Animales();
virtual void Lee();
virtual void Imprime();
};
Animales::Animales(){
Especie="Sin especie";
}
Animales::~Animales(){
cout<<"Animal destruido"<<endl;
}
void Animales::Lee(){
cout<<"Da la especie= ";
fflush(stdin);
getline(cin,Especie);
}
void Animales::Imprime(){
cout<<"Especie: "<<Especie<<endl;
}
class Vertebrados:public Animales{
protected:
int Huesos;
public:
Vertebrados();
~Vertebrados();
virtual void Lee();
virtual void Imprime();
};
Vertebrados::Vertebrados():Animales(){
Huesos=0;
}
Vertebrados::~Vertebrados(){
cout<<"Animal vertebrado destruido"<<endl;
}
void Vertebrados::Lee(){
cout<<"Da la especie= ";
fflush(stdin);
getline(cin,Especie);
cout<<"Numero de huesos= ";
cin>>Huesos;
}
void Vertebrados::Imprime(){
cout<<"Especie= "<<Especie<<endl;
cout<<"Numero de huesos= "<<Huesos<<endl;
}
class Terrestres:public Vertebrados{
protected:
int Patas;
public:
Terrestres();
~Terrestres();
virtual void Lee();
virtual void Imprime();
};
Terrestres::Terrestres():Vertebrados(){
Patas=0;
}
Terrestres::~Terrestres(){
cout<<"Animal vertebrado terrestre destruido"<<endl;
}
void Terrestres::Lee(){
cout<<"Da la especie= ";
fflush(stdin);
getline(cin,Especie);
cout<<"Da numero de huesos= ";
cin>>Huesos;
cout<<"Da el numero de patas= ";
cin>>Patas;
}
void Terrestres::Imprime(){
cout<<"Especie= "<<Especie<<endl;
cout<<"Numero de huesos= "<<Huesos<<endl;
cout<<"Numero de patas= "<<Patas<<endl;
}
int main(){
Animales MiAnimal;
Vertebrados MiVertebrado;
Terrestres MiAnimalTerrestre;
Animales *ap;
ap=&MiAnimal;
cout<<"*****ANIMAL*****"<<endl;
ap->Lee();
ap->Imprime();
ap=&MiVertebrado;
cout<<"****ANIMAL VERTEBRADO****"<<endl;
ap->Lee();
ap->Imprime();
cout<<"***ANIMAL VERTEBRADO TERRESTRE****"<<endl;
ap=&MiAnimalTerrestre;
ap->Lee();
ap->Imprime();
return 0;
}
Ejemplo 27
#include<iostream>
/** EJEMPLO 27: HERENCIA VIRTUAL **/
using namespace std;
class Base{
protected:
float x;
public:
Base();
virtual void Imprime();
~Base(){ }
};
Base::Base():x(20){
}
void Base::Imprime(){
cout<<"x= "<<x<<endl;
}
class Derivada1:virtual public Base{
protected:
float y;
public:
Derivada1();
virtual void Imprime();
~Derivada1(){ }
};
Derivada1::Derivada1():Base(){
y=10;
}
void Derivada1::Imprime(){
cout<<"x= "<<x<<endl;
cout<<"y= "<<y<<endl;
}
class Derivada2:virtual public Base{
protected:
float z;
public:
Derivada2();
virtual void Imprime();
~Derivada2(){ }
};
Derivada2::Derivada2():Base(){
z=5;
}
void Derivada2::Imprime(){
cout<<"x= "<<x<<endl;
cout<<"z= "<<z<<endl;
}
class Derivada3:public Derivada1,public Derivada2{
private:
float w;
public:
Derivada3();
~Derivada3(){ }
virtual void Imprime();
};
Derivada3::Derivada3():Derivada1(),Derivada2(){
w=1;
}
void Derivada3::Imprime(){
cout<<"x= "<<x<<endl;
cout<<"y= "<<y<<endl;
cout<<"z= "<<z<<endl;
cout<<"w= "<<w<<endl;
}
int main(){
Base A;
Derivada1 B;
Derivada2 C;
Derivada3 D;
Base* ap;
ap=&A;
cout<<"Objeto base "<<endl;
ap->Imprime();
ap=&B;
cout<<"objeto derivada 1"<<endl;
ap->Imprime();
ap=&C;
cout<<"objeto derivada 2"<<endl;
ap->Imprime();
ap=&D;
cout<<"objeto derivada 3"<<endl;
ap->Imprime();
return 0;
}
Ejemplo 28
Ejemplo 29
/** EJEMPLO 29 PLANTILLA **/
// PLANTILLA DE LA FUNCION DEL METODO DE LA BURBUJA
#include<iostream>
#include<string.h>
using namespace std;
class Alumno{
private:
string Nombre;
char Grupo[20];
int Edad;
float Promedio;
public:
Alumno();
~Alumno();
friend istream& operator>>(istream&,Alumno&);
friend ostream& operator<<(ostream&,Alumno&);
friend bool operator>(Alumno&,Alumno&);
Alumno& operator=(Alumno&);
};
Alumno& Alumno::operator=(Alumno&Dos){
Nombre=Dos.Nombre;
Edad=Dos.Edad;
Promedio=Dos.Promedio;
strcpy(Grupo,Dos.Grupo);
return *this;
}
ostream& operator<<(ostream& Salida,Alumno &A){
Salida<<"Nombre: "<<A.Nombre<<endl;
Salida<<"Edad= "<<A.Edad<<endl;
Salida<<"Promedio= "<<A.Promedio<<endl;
Salida<<"Grupo= "<<A.Grupo<<endl;
return Salida;
}
bool operator>(Alumno&Uno,Alumno&Dos){
if(Uno.Nombre>Dos.Nombre) return true;
else
return false;
}
istream& operator>>(istream& Entrada, Alumno& A){
cout<<"Da el nombre: ";
fflush(stdin);
getline(Entrada,A.Nombre);
cout<<"Da la edad= ";
Entrada>>A.Edad;
cout<<"Da el promedio= ";
Entrada>>A.Promedio;
fflush(stdin);
cout<<"Da el grupo: ";
Entrada.getline(A.Grupo,20);
return Entrada;
}
Alumno::Alumno(){
Nombre="";
Edad=0;
Promedio=0.0;
Grupo[0]='\0';
}
Alumno::~Alumno(){
}
template <class Tipo>
void Burbuja( Tipo * Arreglo){
int N,i,j;
Tipo Temporal;
cout<<"Cuantos datos quieres ordenar= ";
cin>>N;
Arreglo=new Tipo[N];
for(i=0;i<N;i++){
cout<<"Proporciona el dato "<<(i+1)<<" : "<<endl;
cin>>Arreglo[i];
}
for(j=1;j<=N;j++)
for(i=0;i<(N-1);i++){
if(Arreglo[i]>Arreglo[i+1]){
Temporal=Arreglo[i+1];
Arreglo[i+1]=Arreglo[i];
Arreglo[i]=Temporal;
}
}
cout<<"Los elementos del arreglo ordenados"<<endl;
for(j=0;j<N;j++)
cout<<Arreglo[j]<<'\t';
cout<<endl;
}
int main(){
int *A1;
float *A2;
char *A3;
string *A4;
Alumno *A5;
int x;
cout<<"Que tipo de dato quieres ordenar:"<<endl;
cout<<"1.- Enteros"<<endl;
cout<<"2.- Numeros con punto flotante"<<endl;
cout<<"3.- Caracteres"<<endl;
cout<<"4.- Cadenas"<<endl;
cout<<"5.- Alumnos"<<endl;
cout<<"Que opcion deseas= ";
cin>>x;
switch(x){
case 1:
Burbuja(A1);
break;
case 2:
Burbuja(A2);
break;
case 3:
Burbuja(A3);
break;
case 4:
Burbuja(A4);
break;
case 5:
Burbuja(A5);
break;
}
return 0;
}