Danny Muñoz
 MULTIPLICACION DE MATRICES

El producto de dos matrices se puede definir sólo si el número de columnas de la matriz izquierda es el mismo que el número de filas de la matriz derecha. Si A es una matriz m×n y B es una matriz n×p, entonces su producto matricial AB es la matriz m×p (m filas, p columnas.




 PROGRAMA EN C# PARA LA MULTIPLICACION DE MATRICES



using System ;
using System.Collections.Generic ;
using System. Text ;
namespace MultiplicacionMatrices {
    class MultiplicacionMatrices {
        static void Main ( ) {
            Console. WriteLine ( "[Matriz 1]" ) ;
            Console. Write ( "Filas: " ) ;
            int f1 = int . Parse ( Console. ReadLine ( ) ) ;
            Console. Write ( "Columnas: " ) ;
            int c1 = int . Parse ( Console. ReadLine ( ) ) ;
            Console. WriteLine ( " \n [Matriz 2]" ) ;
            Console. Write ( "Filas: " ) ;
            int f2 = int . Parse ( Console. ReadLine ( ) ) ;
            Console. Write ( "Columnas: " ) ;
            int c2 = int . Parse ( Console. ReadLine ( ) ) ;
            int [ , ] Matriz1 = new int [ f1 + 1 , c1 + 1 ] ;
            int [ , ] Matriz2 = new int [ f2 + 1 , c2 + 1 ] ;
            int [ , ] Multiplicacion = new int [ f1 + 1 , c2 + 1 ] ;
            if ( c1 == f2 ) { Console. WriteLine ( " \n Datos [Matriz 1]: " ) ;
                for ( int i = 1 ; i <= f1 ; i ++ ) {
                    for ( int j = 1 ; j <= c1 ; j ++ ) {
                        Console. Write ( "Ingresa Dato (Fila: {0} - Columna: {1}): " , i, j ) ;
                        Matriz1 [ i, j ] = int . Parse ( Console. ReadLine ( ) ) ; } }
                Console. WriteLine ( "Datos [Matriz 2]: " ) ;
                for ( int i = 1 ; i <= f2 ; i ++ ) {
                    for ( int j = 1 ; j <= c2 ; j ++ ) {
                        Console. Write ( "Ingresa Dato (Fila: {0} - Columna: {1}): " , i, j ) ;
                        Matriz2 [ i, j ] = int . Parse ( Console. ReadLine ( ) ) ;
                    } }
                for ( int i = 1 ; i <= f1 ; i ++ ) {
                    for ( int j = 1 ; j <= c2 ; j ++ ) {
                        Multiplicacion [ i, j ] = 0 ;
                        for ( int z = 1 ; z <= c1 ; z ++ ) {
                            Multiplicacion [ i, j ] = Matriz1 [ i, z ] * Matriz2 [ z, j ] + Multiplicacion [ i, j ] ;
                        } } }
                Console. WriteLine ( "Multiplicacion de 2 Matrices" ) ;
                for ( int i = 1 ; i <= f1 ; i ++ ) {
                    for ( int j = 1 ; j <= c2 ; j ++ ) {
                        Console. Write ( "{0} " , Multiplicacion [ i, j ] ) ;
                    }
                    Console. WriteLine ( ) ;
                } } else { Console. WriteLine ( "Error: No se puede multiplicar las matrices" + " Columnas: {0}! = Filas: {1}" , c1, f2 ) ;
            }
            Console. Read ( ) ;
        } } }

FUNCIONAMIENTO DEL CODIGO

El programa funciona de la siguiente manera primero pide al usuario que ingrese las filas y las columnas que tendran las matrices a multiplicar luego se evalua una condicion mediante un if y la condicon es que el numero de columnas de la matriz 1 debe de ser igual al numero de filas de la matriz 2 si la condicion se cumple el programa pide al usuario que llene las matrices y esto se lo hace mediante for anidados luego despues de haberse llenado las matrices se procede a usar tres fors anidados para realizar la operacion matematica el for de z controlara la mayor parte de los procesos internos luego el for de j controlara el cambio de posiciones de la matiz de las columnas de la matriz 2 y por ultimo el for de i controlara el movimiento de las filas de la matriz 1 y de la matriz resultante al terminar este proceso y haberse obtenido la matriz resultante se procedera a mostrarla mediante dos for anidados y por ultimo el programa cuenta con un mensaje de error que se mostrara en caso de que los valores ingresados para las filas y las columnas no cumplan con la condicion del if.