elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  PRODCUCTO DE DOS MATRICES DE 3 X 3 : DUDA
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: PRODCUCTO DE DOS MATRICES DE 3 X 3 : DUDA  (Leído 3,171 veces)
snoopty

Desconectado Desconectado

Mensajes: 86


Ver Perfil
PRODCUCTO DE DOS MATRICES DE 3 X 3 : DUDA
« en: 6 Diciembre 2021, 12:05 pm »

El resultado que devuelve este Producto me cuesta entenderlo : En principio intuyo que está mal por muchas razones ..... algunas, que el 1er resultado que debería de arrojar sería ( 32 + 35 + 16 = " 83 " ) Y además es notoria la diferencia entre los resultados 4to, 5to y 6to - Valores muy pequeños - respecto del resto de los resultados - Valores Enormes -

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main( )
  5. {
  6. int numerosmatrizA [3] [3] = { 4, 7, 2,
  7.                               8, 9, 3,
  8.                               1, 5, 5 };
  9.  
  10. int numerosmatrizB [3] [3] = { 8, 9, 1,
  11.                               5, 6, 4,
  12.                               8, 9, 2 };
  13.  
  14.  
  15. int producto [3] [3];  // PRODUCTO DE DOS MATRICES  :  Se va multiplicando cada Elemento de la FILA de la 1er Matriz
  16.                                                   //  con cada Elemento de la COLUMNA de la 2da Matriz
  17.                                                   //  ( Cada Producto se suma al siguiente )
  18.                                                   //  Ej = ((4*8) + (7*5) + (2*8)) + ...
  19.                                                   //       ((4*9) + (7*6) + (2*9)) + ...
  20.  
  21.  
  22. cout << "\n";                       // P q la Matriz PRODUCTO no quede pegada al borde sup
  23. for ( int i = 0; i < 3; i = i + 1 ) // BUCLE para las Filas " i "
  24. {
  25. for ( int j = 0; j < 3; j = j + 1 ) // BUCLE para las Columnas " j "
  26. {
  27. for ( int k = 0; k < 3; k = k + 1 ) // BUCLE para q el Elemento que se ejecuta se vaya MOVIENDO
  28.                                    // a través de las FILAS de la 1er Matriz y las Columnas de la 2da
  29. {
  30.  
  31. cout << "\t";
  32.  
  33. producto [i] [j] = ( producto [i] [j] ) + ( numerosmatrizA [i] [k]  *  numerosmatrizB [k] [j] );
  34.  
  35.                                    // Queda fija la Fila i de numerosmatrizA mientras k se va desplazando por la misma de izq a der    ( LUEGO )
  36.  
  37.                                    // Queda fija la Columna j de numerosmatrizB mientras k se va desplazando por la misma de arr h ab
  38.  
  39.  
  40. cout << producto [i] [j] << " " ;
  41. }
  42. }
  43. cout << "\n";
  44. }
  45. return 0;
  46. }
  47.  

Gracias x leer el mensaje.


« Última modificación: 6 Diciembre 2021, 12:09 pm por snoopty » En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: PRODCUCTO DE DOS MATRICES DE 3 X 3 : DUDA
« Respuesta #1 en: 6 Diciembre 2021, 13:41 pm »

Ni hace falta mirar el código... cuando dices que te dan valores muy elevados.

Debes usar un array temporal, para mantener los valores que se van calculando, de otro modo acabas multiplicando por un valor ya calculado, varias veces...

Código:
temp[x][y] = (A[x][y] + ( B[x][z] * C[z][y] )) 

p.d.: Nota que A, en realidad es también temp...
Te lo resumo, nota como la solución se devuelve en un array por referencia... y los arrays de origen no se alteran.

Código:
funcion MulMatrices(M1[][], M2[][], Ms[][])
    entero x, y, z
    
    bucle para x desde 0 a 2
        bucle para y desde 0 a 2
            Ms[x][y] = 0   //esto permite que el mismo array pueda ser reutilizado múltiples veces.
            bucle para z desde 0 a 2
                Ms[x][y] = (Ms[x][y] + (M1[x][z] * M2[z][y]) )
            siguiente
        Siguiente
    siguiente
fin funcion


« Última modificación: 6 Diciembre 2021, 13:59 pm por Serapis » En línea

snoopty

Desconectado Desconectado

Mensajes: 86


Ver Perfil
Re: PRODCUCTO DE DOS MATRICES DE 3 X 3 : DUDA
« Respuesta #2 en: 7 Diciembre 2021, 08:40 am »

Gracias x tu respuesta : intentaré encontrarle la vuelta.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre matrices en C
Programación C/C++
ildarion 7 4,935 Último mensaje 25 Septiembre 2010, 20:29 pm
por satu
duda matrices c++
Programación C/C++
indict 4 2,391 Último mensaje 18 Abril 2013, 18:02 pm
por indict
duda con programa de matrices!!!!
Programación C/C++
EdgarKrieger 4 2,686 Último mensaje 10 Diciembre 2013, 17:26 pm
por EdgarKrieger
[DUDA] Matrices
Programación C/C++
kayron8 9 3,866 Último mensaje 13 Marzo 2014, 12:52 pm
por Gh057
duda con ejercicio de matrices
Programación C/C++
andoporto 1 2,220 Último mensaje 6 Febrero 2015, 23:00 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines