Autor
|
Tema: duda con código if [c++] (Leído 5,283 veces)
|
andrex.125
Desconectado
Mensajes: 19
|
hola , tengo una duda, estoy haciendo un programa sobre matrices donde sumo, resto y multiplico, mi error es en la multiplicación, se sabe que para multiplicar dos matrices la condición es: que el número de columnas de la matriz A sea igual al número de filas de matriz B, ya realice todo el código en esta parte, ahora si el error estoy intentando hacer una comprobación con un if para que me multiplique solo cuando el numero de filas sea igual al numero de columnas y de lo contrario me muestre un mensaje, el problema es que me arroja la multiplicación y el mensaje. Matriz Matriz::MultiDosMarices (Matriz m) //se crea objeto Matriz para guardar resultado de la multiplicacion de las dos matrices { Matriz mul (numfilas, numcolumnas); if (numfilas == numcolumnas) { for (int i=0;i<numfilas;i++) { for (int j=0;j<numcolumnas;j++) { mul.matriz [i][j]=0; for (int k=0;k<numcolumnas;k++) { mul.matriz[i][j]=mul.matriz[i][j]+matriz[i][k]* m.matriz[k][j]; } } } return mul; } else { cout<<"esta multiplicacion no se puede realizar."<<endl; } }
Esta es la captura:  Gracias.
|
|
|
En línea
|
|
|
|
BlackM4ster
Desconectado
Mensajes: 499
Error, el teclado no funciona. Pulse F1 para continuar
|
if (numfilas == numcolumnas)
Está comparando el numero de filas con el numero de columnas... Mira tus matrices... 3!=2
|
|
|
En línea
|
|
|
|
andrex.125
Desconectado
Mensajes: 19
|
if (numfilas == numcolumnas)
Está comparando el numero de filas con el numero de columnas... Mira tus matrices... 3!=2 Exacto, pero es que debería arrojarme el mensaje solamente, pero me arroja también la multiplicación.
|
|
|
En línea
|
|
|
|
BlackM4ster
Desconectado
Mensajes: 499
Error, el teclado no funciona. Pulse F1 para continuar
|
Ah, no había entendido bien entonces...
|
|
|
En línea
|
|
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
Tal como "aparenta" el código, sólo introduces las dimensiones de una matriz lo que da como resultado que siempre podrás sumarlas y restarlas pero como multiplicarlas tienen que ser cuadradas, sino no se cumple la condición para poder multiplicarlas.
¡Error! Para multriplicar dos matrices, la segunda tiene que tener el mismo número de columnas que la primera. La condición que ha puesto es correcta pero debe retornar un NULL para indicar que no se pudo hacer.
|
|
« Última modificación: 29 Mayo 2013, 21:00 pm por amchacon »
|
En línea
|
|
|
|
andrex.125
Desconectado
Mensajes: 19
|
¡Error!
Para multriplicar dos matrices, la segunda tiene que tener el mismo número de columnas que la primera. La condición que ha puesto es correcta pero debes retornar un NULL para indicar que no se pudo hacer.
Disculpa, me podrías indicar como se retorna un NULL.
|
|
|
En línea
|
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
return NULL;
Despues tienes que llamar a la función así: if (!MultiDosMarices) { cout<<"No se pudo completar la operacion"; } else { // Mostramos el resultado por pantalla }
Si te parece más intuitivo: if (MultiDosMarices == NULL) { cout<<"No se pudo completar la operacion"; } else { // Mostramos el resultado por pantalla }
|
|
|
En línea
|
|
|
|
andrex.125
Desconectado
Mensajes: 19
|
¡Error!
Para multriplicar dos matrices, la segunda tiene que tener el mismo número de columnas que la primera. La condición que ha puesto es correcta pero debes retornar un NULL para indicar que no se pudo hacer.
Muchas gracias por tu ayuda, ya logre resolverlo.
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
¡Error!
Para multiplicar dos matrices, la segunda tiene que tener el mismo número de columnas que la primera. La condición que ha puesto es correcta pero debe retornar un NULL para indicar que no se pudo hacer.
Creo que no te has fijado bien o más bien no basta con el "pantallazo" para salir de dudas.
Si te fijas comienza introduciendo las dimensiones de una matriz y sus elementos, para posteriormente preguntar si quiere introducir otra matriz, pero ya no pregunta por las dimensiones. Fíjate en el "sub-pantallazo": ¿Ves como en esta segunda matriz entra los dato directamente?. No ha preguntado por la dimensión de esta nueva matriz y claro, en estas condiciones ambas , al no ser cuadradas, no cumplen con la condición de que la segunda tenga el mismo número de columnas que la primera. Pero todo es un suponer a partir de la dichosa imagen, pues a lo mejor, pudiera ser que, es posible que ..... haya introducido previamente las dichositas dimensiones.
Vamos, querido colega amchacon, que para no perder la costumbre quería llevarte un poquito la contraria ...... ....porfi, tómalo como un cumplido.
Un fuerte abrazo y como siempre .......Saluditos!. .... ...
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
duda en el codigo vb
Programación Visual Basic
|
josemer
|
0
|
1,442
|
23 Enero 2006, 20:32 pm
por josemer
|
|
|
duda en un codigo vb
Programación Visual Basic
|
ugruhell
|
6
|
2,694
|
26 Agosto 2006, 00:20 am
por Ironhorse
|
|
|
Duda con codigo de vb6 y el MSN
« 1 2 »
Programación Visual Basic
|
Anteros
|
10
|
3,857
|
6 Abril 2007, 01:54 am
por Sancho.Mazorka
|
|
|
Duda codigo PHP
PHP
|
knox18
|
1
|
1,864
|
9 Septiembre 2007, 17:24 pm
por P[i]
|
|
|
Duda codigo PHP
« 1 2 »
PHP
|
knox18
|
14
|
5,990
|
14 Septiembre 2007, 15:15 pm
por Alex_bro
|
|