• Viernes 8 de Noviembre de 2024, 21:41

Autor Tema:  Trabajo en C++ con matrices  (Leído 1017 veces)

samael100pre

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Trabajo en C++ con matrices
« en: Domingo 29 de Noviembre de 2009, 04:01 »
0
Hola gente linda, no se si puediesen pasarme algun programa tipo proyecto  q hayan hecho en c++ q contenga matrices cualquiera q sea porfarvor estoy urgido.
les agradesco de antemano.
 :unsure:

david_lomber

  • Miembro activo
  • **
  • Mensajes: 34
  • Nacionalidad: mx
  • Impossible is nothing, just do it!!
    • Ver Perfil
    • Pelis DVDRip
Re: Trabajo en C++ con matrices
« Respuesta #1 en: Jueves 10 de Diciembre de 2009, 04:29 »
0
Me parece que este multiplica matrices, haber si te sirve!!


#include <iostream.h>
#include <conio.h>
#include <iomanip.h>

//DECLARACION DE LA CLASE****************************************************
class multiplica{
   private:
     int ren1;
     int col1;
     int ren2;
     int col2;
   public:
     multiplica();//int,int,int,int);
     void lee_matrices();    //int*,int*,int*,int*);
    // void asignadatos(int,int,int,int);
     void extraedatos(int*,int*,int*,int*);
     void lee_datosA(int**,int,int);
     void lee_datosB(int**,int,int);
     void multiplicacion(int**, int**, int**,int,int,int);
     void mostrar_ABC(int**, int**, int**,int,int,int);
};
//funcion principal "main"***************************************************
int main(){

 int r1, c1, r2, c2;
 int **mA, **mB, **mC;
 clrscr();

 multiplica mult;//(0,0,0,0);
// mult.asignadatos(&r1,&c1,&r2,&c2);
// mult.lee_matrices();

 mult.extraedatos(&r1,&c1,&r2,&c2);
 if(c1==r2){
    clrscr();
//creacion de las matrices
     mA=new int*[r1];
     for(int i=0; i<r1; i++)
       mA=new int[c1];

     mB=new int*[c1];
     for(i=0; i<c1; i++)
       mB=new int[c2];

     mC=new int*[r1];
     for(i=0; i<r1; i++)
       mC=new int[c2];

 mult.lee_datosA(mA, r1, c1);
 mult.lee_datosB(mB,c1,c2);
 mult.multiplicacion(mA, mB, mC,r1,c1,c2);
 mult.mostrar_ABC(mA, mB, mC,r1,c1,c2);
 }

 if(c1!=r2){
  clrscr();
  cout<<"Esas matrices no se pueden multiplicar"<<endl;
 }

    getch();
    return 0;
}



//FUNCIONES******************************************************************
multiplica::multiplica(){//int num1,int num2,int num3,int num4){
 lee_matrices();// asignadatos(num1,num2,num3,num4);
}

/*void multiplica::asignadatos(int num1,int num2,int num3,int num4){

   ren1=num1;
   col1=num2;
   ren2=num3;
   col2=num4;
} */

void multiplica::lee_matrices(){  //int *r1,int *c1,int *r2,int *c2){

// int ren1, col1, ren2, col2;
   cout<<"Dame el numero de renglones de la matriz A"<<endl;
   cin>>ren1;   // ren1=*r1;
   cout<<"Dame el numero de columnas de la matriz A"<<endl;
   cin>>col1;   // col1=*c1;
   cout<<"Dame el numero de renglones de la matriz B"<<endl;
   cin>>ren2;    //ren2=*r2;
   cout<<"Dame el numero de columnas de la matriz B"<<endl;
   cin>>col2;   // col2=*c2;
}

void multiplica::extraedatos(int *r1,int *c1,int *r2,int *c2){
   *r1=ren1;
   *c1=col1;
   *r2=ren2;
   *c2=col2;
}


void multiplica::lee_datosA(int **mA,int r1,int c1){

  int i,j;
   cout<<"Dame los datos de la matriz A"<<endl;
   for(i=0; i<r1; i++){
     for(j=0; j<c1; j++){
     cin>>mA[j]; clrscr();
     }
   }

}

void multiplica::lee_datosB(int **mB,int c1,int c2){
     int i,j;
   cout<<"Dame los datos de la matriz B"<<endl;
   for(i=0; i<c1; i++){
   for(j=0; j<c2; j++){
     cin>>mB[j]; clrscr();
   }
   }

}

void multiplica::multiplicacion(int **mA, int **mB, int **mC,int r1,int c1,int c2){

  int sum,i,j,l;
   for(i=0; i<r1; i++){
     for(l=0; l<c2; l++){   sum=0;
       for(j=0; j<c1; j++){
         sum+=mA[j]*mB[j][l];
   }
   mC[l]=sum;
      }
    }
}

void multiplica::mostrar_ABC(int **mA, int **mB, int **mC,int r1,int c1,int c2){

  int i,j;
  cout<<"Matriz A"<<endl<<endl;
      for(i=0; i<r1; i++){
   for(j=0; j<c1; j++){
     cout<<setw(4)<<mA[j];
   } cout<<endl<<endl;
      }         cout<<endl<<endl<<endl<<endl;

  cout<<"Matriz B"<<endl<<endl;
      for(i=0; i<c1; i++){
   for(j=0; j<c2; j++){
     cout<<setw(4)<<mB[j];
   }  cout<<endl<<endl;
      }

      cout<<endl<<endl<<endl;
  cout<<"Matriz C"<<endl<<endl;
    for(i=0; i<r1; i++){
      for(j=0; j<c2; j++){
      cout<<setw(4)<<mC[j];
       }cout<<endl<<endl;
    }
}