Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/06/2013, 20:14
ecfisa
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 12 años, 4 meses
Puntos: 22
Respuesta: [c++] multiplicar vector por matriz

Hola lokixxx.

Por lo que entiendo de tu mensaje, podría ser:
Código C++:
Ver original
  1. #include<iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. #define MAX_ROWS 4 // m
  6. #define MAX_COLS 4 // n
  7.  
  8. typedef int tMatriz[MAX_ROWS][MAX_COLS]; // mxn
  9. typedef vector <int> tVector; // n
  10.  
  11. void Matriz_x_Vector(tMatriz, tMatriz, tVector );
  12. void MostrarMatriz(tMatriz);
  13. void Inicializar(tMatriz, tVector &);
  14.  
  15. int main()
  16. {
  17.   tMatriz m1 , m2;
  18.   tVector v;
  19.  
  20.   Inicializar(m1,v);
  21.   MostrarMatriz(m1);
  22.   Matriz_x_Vector(m1, m2, v);
  23.   cout << "---------------------------" << endl;
  24.   MostrarMatriz(m2);
  25.   cin.get();
  26.   return 0;
  27. }
  28.  
  29. void Inicializar(tMatriz m, tVector &v)
  30. {
  31.   int x = 1;
  32.   for(int r = 0; r < MAX_ROWS; r++) {
  33.     v.push_back(r+1);
  34.     for(int c = 0; c < MAX_COLS; c++)
  35.        m[r][c] = x++;
  36.   }
  37. }
  38.  
  39. void Matriz_x_Vector(tMatriz source, tMatriz target, tVector vec)
  40. {
  41.   for(int r = 0; r < MAX_ROWS; r++)
  42.     for(int c = 0; c < MAX_COLS; c++)
  43.       target[r][c] = source[r][c] * vec[r];
  44. }
  45.  
  46. void MostrarMatriz(tMatriz mat)
  47. {
  48.   for(int r = 0; r < MAX_ROWS; r++ ) {
  49.     for(int c = 0; c < MAX_COLS; c++)
  50.       cout << mat[r][c] << '\t';
  51.     cout << endl << endl;
  52.   }
  53. }
(El órden de carga de la matriz puede ser diferente, pero no está especificado en el enunciado)

Saludos. :)