Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[c++] multiplicar vector por matriz

Estas en el tema de [c++] multiplicar vector por matriz en el foro de C/C++ en Foros del Web. Escribir un programa que cargue y muestre una matriz de tamaño mxn y un vector de tamaño n. Multiplicar los elementos del vector con los ...
  #1 (permalink)  
Antiguo 25/06/2013, 17:46
 
Fecha de Ingreso: febrero-2009
Mensajes: 20
Antigüedad: 15 años, 9 meses
Puntos: 2
[c++] multiplicar vector por matriz

Escribir un programa que cargue y muestre una matriz de tamaño mxn y un vector de tamaño n. Multiplicar los elementos del vector con los elementos de la matriz, y cargar el resultado en una nueva matriz. Tenga en cuenta que para poder realizar esta operación el tamaño del vector debe ser igual al tamaño de las columnas de la matriz. Luego mostrar la matriz resultante.

No tengo idea como multiplicar el vector con la matriz. matematicamente lo se hacer... pero no se me ocurre como es en c++
  #2 (permalink)  
Antiguo 25/06/2013, 20:14
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 12 años, 5 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. :)

Etiquetas: matriz, multiplicar, programa, vector
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:32.