martes, 7 de junio de 2016

Tercer parcial

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

No hay comentarios:

Publicar un comentario