Practica 8
Codigo
#include<iostream>
#include<cstdlib>
#include<cmath>
#include<cstring>
using namespace std;
class figura
{
protected:
int base,h,l,hip;
double area1,semi_p,area2;
public:
figura()
{}
void calcular_area(int
altura,int b)
{
h=altura;
base=b;
h=(sqrt(3)*(l))/2;
area1=(h*l)/2;
}
virtual void pinta()
{
cout<<"noj"<<endl;
}
virtual void
muestra_Datos()
{}
};
class triangulo:public figura
{
private :
double area;
public:
triangulo()
{
cout<<"TRIANGULO EQUILATERO"<<endl;
cout<<"Ingresa
lado : "<<endl;
cin>>l;
}
void pinta()
{
cout<<"Lado :
"<<l<<endl;
h=(sqrt(3)*(l))/2;
area1=(h*l)/2;
}
void muestra_Datos()
{
figura::muestra_Datos();
cout<<"Altura: "<<h<<endl;
cout<<"Area:
"<<area1<<endl;
}
};
class triangulo_rec:public figura
{
private :
double area2;
public:
triangulo_rec()
{
cout<<endl<<"TRIANGULO
RECTANGULO"<<endl;
cout<<"Ingresa la 'base': "<<endl;
cin>>base;
cout<<"Ingresa la 'altura': "<<endl;
cin>>h;
cout<<"Ingresa la 'hipotenusa' : "<<endl;
cin>>hip;
}
void pinta()
{
cout<<"Base:
"<<base<<endl;
cout<<"Altura :
"<<h<<endl;
cout<<"Hipotenusa :
"<<hip<<endl;
semi_p=(h+base+hip)/2;
area2=sqrt(semi_p*(semi_p-base)*(semi_p-h)*(semi_p-hip));
}
void muestra_Datos()
{
figura::muestra_Datos();
cout<<"Semiperimetro: "<<semi_p<<endl;
cout<<"Area:
"<<area2<<endl;
}
};
int main()
{
figura *area_t;
area_t=new triangulo();
area_t->pinta();
area_t->muestra_Datos();
area_t=new triangulo_rec();//va
a adoptar la forma del triangulo rectangulo
area_t->pinta();
area_t->muestra_Datos();
system("pause>null");
}
Practica 9
Código
#include<iostream>
#include<cmath>
#include<cstdlib>
using namespace std;
template<class TG0>
TG0 raiz(TG0 num1)
{
if(0>num1)
{
cout<<"No
exite su raiz en los reales"<<endl;return 1;
}
else
{
return
sqrt(num1);
}}
void raiz()
{
int num1;
double num11;
char num111;
cout<<"Ingresa 1 numero 'enteros'"<<endl;
cin>>num1;
cout<<"La raiz es : "<<raiz(num1)<<endl;
cout<<"Ingresa 1 numero 'doubles'"<<endl;
cin>>num11;
cout<<"La raiz es : "<<raiz(num11)<<endl;
}
template<class TG1>
TG1 mayor(TG1 num1,TG1 num2)
{
if(num1>num2)
{
return
num1;
}
else
{
return
num2;
}}
void maximos()
{
int num1,num2;
double
num11,num12;
char
num111,num112;
cout<<"Ingresa 2 numeros 'enteros'" <<endl;
cin>>num1>>num2;
cout<<"El numero mayor es :
"<<mayor(num1,num2)<<endl;
cout<<"Ingresa 2 numeros 'doubles'"<<endl;
cin>>num11>>num12;
cout<<"El numero mayor es :
"<<mayor(num11,num12)<<endl;
}
template <class TG2>
class matriz
{
int
filas,columnas;
TG2**
matrizbase0=NULL;
TG2**
matrizbase1=NULL;
TG2**
matrizbase2=NULL;
public:
matriz(){}
void pide()
{
cout<<"Ingresa numero de filas : ";
cin>>filas;
cout<<"Ingresa numero de columnas : ";
cin>>columnas;
// Generando
matriz dinamica
matrizbase0
=new TG2* [filas];
matrizbase1
=new TG2* [filas];
matrizbase2
=new TG2* [filas];
for(int
i=0;i<filas;i++)
{
matrizbase0[i] = new TG2[columnas];
matrizbase1[i] = new TG2[columnas];
matrizbase2[i] = new TG2[columnas];
}
//Ingresando
datos m1
cout<<"Ingresa datos para la matriz 1"<<endl;
for(int
f=0;f<filas;f++)
{
for(int c=0;c<columnas;c++)
{
cout<<"Valor para
la posicion
["<<f+1<<" , "<<c+1<<"]:
";
cin>>matrizbase0[f][c];
}}
//Ingresando
datos m2
cout<<"Ingresa datos para la matirz 2"<<endl;
for(int f=0;f<filas;f++)
{
for(int c=0;c<columnas;c++)
{
cout<<"Valor para la posicion
["<<f+1<<" , "<<c+1<<"]:
";
cin>>matrizbase1[f][c];
}}
}
void muestra()
{
cout<<"Mostrando datos"<<endl;
cout<<"Matriz
1"<<endl;
for(int
f=0;f<filas;f++)
{
for(int
c=0;c<columnas;c++)
{
cout<<matrizbase0[f][c];
cout<<"\t";
}
}
cout<<endl;
cout<<"Matriz 2"<<endl;
for(int
f=0;f<filas;f++)
{
for(int
c=0;c<columnas;c++)
{
cout<<matrizbase1[f][c];
cout<<"\t";
}
}
cout<<"La suma de las matrices es : "<<endl;
for(int f=0;f<filas;f++)
{
for(int
c=0;c<columnas;c++)
{
cout<<matrizbase2[f][c];
cout<<"\t";
}
}
}
void suma()
{
for(int
f=0;f<filas;f++)
{
for(int
c=0;c<columnas;c++)
{
matrizbase2[f][c]=matrizbase0[f][c]+matrizbase1[f][c] ;
cout<<"\t";
}
cout<<endl;
}
}
};
template <class TG3>
class vector
{
int tam;
TG3*
vector0=NULL;
TG3*
vector1=NULL;
TG3*
vector2=NULL;
public:
vector(){}
void pide()
{
cout<<"Ingresa tamanio ";
cin>>tam;
// Generando
vector dinaico
vector0 =new
TG3 [tam];
vector1 =new
TG3 [tam];
vector2 =new
TG3 [tam];
//Ingresando
datos v1
cout<<"Ingresa datos para el vector 1"<<endl;
for(int
t=0;t<tam;t++)
{
cout<<"Valor para la posicion
["<<t+1<<"]: ";
cin>>vector0[t];
}
//Ingresando
datos v2
cout<<"Ingresa datos para el vector 2"<<endl;
for(int
t=0;t<tam;t++)
{
cout<<"Valor para la posicion ["<<t+1<<"]: ";
cin>>vector1[t];
}
}
void muestra()
{
cout<<"Mostrando datos"<<endl;
cout<<"Vector 1"<<endl;
for(int
t=0;t<tam;t++)
{
cout<<vector0[t]<<"
";
cout<<"\t";
}
cout
<<endl;
cout<<"Vector 2"<<endl;
for(int
t=0;t<tam;t++)
{
cout<<vector1[t]<<"
";
cout<<"\t";
}
cout<<endl;
cout<<"La suma de los vectores es : "<<endl;
for(int
t=0;t<tam;t++)
{
cout<<vector2[t]<<"
";
cout<<"\t";
}
}
void suma()
{
for(int
t=0;t<tam;t++)
{
vector2[t]=vector0[t]+vector1[t];
cout<<endl;
}
}
};
void vec()
{
int op1;
vector<int> obj10;
vector<char> obj12;
vector<double> obj11;
vector<string> obj13;
do{
cout<<"1. Vector con 'enteros'"<<endl;
cout<<"2.
Vector con 'char'"<<endl;
cout<<"3.
Vector con 'double'"<<endl;
cout<<"4.
Vector con 'string'"<<endl;
cout<<"5.
Regresar"<<endl;
cout<<"Ingresa
una opcion: ";
cin>>op1;
switch(op1)
{
case 1:
system("cls");
cout<<"Vector con enteros "<<endl;
obj10.pide();
obj10.suma();
obj10.muestra();
system("pause");
system("cls");
break;
case 2:
system("cls");
cout<<"Vector con char "<<endl;
obj12.pide();
obj12.suma();
obj12.muestra();
system("pause");
system("cls");
break;
case 3:
system("cls");
cout<<"Vector con double "<<endl;
obj11.pide();
obj11.suma();
obj11.muestra();
system("pause");
system("cls");
break;
case 4:
system("cls");
cout<<"Vector con string "<<endl;
obj13.pide();
obj13.suma();
obj13.muestra();
system("pause");
system("cls");
break;
case 5:
cout<<"Regresando al menu principal "<<endl;
system("pause");
break;
default:
cout<<"Opcion
incorrecta"<<endl;
system("pause");
system("cls");
}
}while(op1!=5);
}
void mat ()
{
int op1;
matriz<int> obj0;
matriz<char> obj2;
matriz<double> obj1;
matriz<string> obj3;
do{
cout<<"1. Matriz con 'enteros'"<<endl;
cout<<"2.
Matriz con 'char'"<<endl;
cout<<"3.
Matriz con 'double'"<<endl;
cout<<"4.
Matriz con 'string'"<<endl;
cout<<"5.
Regresar "<<endl;
cout<<"Ingresa
una opcion: ";
cin>>op1;
switch(op1){
case 1:
system("cls");
cout<<"Matriz con enteros "<<endl;
obj0.pide();
obj0.suma();
obj0.muestra();
system("pause");
system("cls");
break;
case 2:
system("cls");
cout<<"Matriz con char "<<endl;
obj2.pide();
obj2.suma();
obj2.muestra();
system("pause");
system("cls");
break;
case 3:
system("cls");
cout<<"Matriz con double "<<endl;
obj1.pide();
obj1.suma();
obj1.muestra();
system("pause");
system("cls");
break;
case 4:
system("cls");
cout<<"Matriz con string "<<endl;
obj3.pide();
obj3.suma();
obj3.muestra();
system("pause");
system("cls");
break;
case 5:
cout<<"Regresando al menu principal "<<endl;
system("pause");
break;
default:
cout<<"Opcion incorrecta
"<<endl;
system("pause");
system("cls");
}
}while(op1!=5);
}
int main()
{
int op;
do{
cout<<"Bienvenido"<<endl;
cout<<"1. Comparar mayor y menor
"<<endl;
cout<<"2. Raiz"<<endl;
cout<<"3. Vector"<<endl;
cout<<"4. Matriz"<<endl;
cout<<"5. Salir"<<endl;
cout<<"Ingresa una opcion: ";
cin>>op;
switch(op){
case 1:
system("cls");
maximos();
system("pause");
system("cls");
break;
case 2:
system("cls");
raiz();
system("pause");
system("cls");
break;
case 3:
system("cls");
vec();
system("pause");
system("cls");
break;
case 4:
system("cls");
mat();
system("pause");
system("cls");
break;
case 5:
cout<<"Hasta luego "<<endl;
system("pause");
break;
default:
cout<<"No es una opcion correcta"<<endl;
system("pause");
system("cls");
}
}while(op!=5);
return 0;
}