martes, 1 de marzo de 2011

Producto de matrices
este programa nos permite saber como realizamos una multiplicacion de matrices en un programa.
using System ;
using System.Collections.Generic ;
using System. Text ;
namespace MultiplicacionMatrices {
 class MultiplicacionMatrices {
  static void Main ( ) {
   Console. WriteLine ( "[Matriz 1]" ) ; //    nos permite imprimir lo que esta adentro de los parentecis
   Console. Write ( "Filas: " ) ; //    este identifica la fila de la matriz
   int f1 = int . Parse ( Console. ReadLine ( ) ) ; // declara la fila1
   Console. Write ( "Columnas: " ) ; //  identifica la columna de la matriz
   int c1 = int . Parse ( Console. ReadLine ( ) ) ;// declara la columna
   Console. WriteLine ( " \n [Matriz 2]" ) ; // nos permite imprimir lo que esta en el parentecis
   Console. Write ( "Filas: " ) ; // identifica la fila
   int f2 = int . Parse ( Console. ReadLine ( ) ) ;// declara la fila2
   Console. Write ( "Columnas: " ) ;// identifica la columna
   int c2 = int . Parse ( Console. ReadLine ( ) ) ;// declara la columna2
   int [ , ] Matriz1 = new int [ f1 + 1 , c1 + 1 ] ;
   int [ , ] Matriz2 = new int [ f2 + 1 , c2 + 1 ] ; //   muestra la matrices al ingresar al programa
   int [ , ] Multiplicacion = new int [ f1 + 1 , c2 + 1 ] ;
   if ( c1 == f2 ) { Console. WriteLine ( " \n Datos [Matriz 1]: " ) ; 
    for ( int i = 1 ; i <= f1 ; i ++ ) {    // estos dos fo permiten llenar las matrices                                           
     for ( int j = 1 ; j <= c1 ; j ++ ) {                                         
      Console. Write ( "Ingresa Dato (Fila: {0} - Columna: {1}): " , i, j ) ;// lee las filas y las columnas
      Matriz1 [ i, j ] = int . Parse ( Console. ReadLine ( ) ) ; } } // ingresa la matriz 1
    Console. WriteLine ( "Datos [Matriz 2]: " ) ; // lee la matriz2
    for ( int i = 1 ; i <= f2 ; i ++ ) {// para llenar la matriz
     for ( int j = 1 ; j <= c2 ; j ++ ) {
      Console. Write ( "Ingresa Dato (Fila: {0}- Columna: {1}): " , i, j ) ;//ingrasa la fila y columna de la matriz
      Matriz2 [ i, j ] = int . Parse ( Console. ReadLine ( ) ) ;// ingresa la matriz2
     } }
    for ( int i = 1 ; i <= f1 ; i ++ ) { // estos 2 for nos permite saber hasta que tiempo va a multiplicar
     for ( int j = 1 ; j <= c2 ; j ++ ) { // las dos matrices
      Multiplicacion [ i, j ] = 0 ; // este peremite multiplicar la matrices
      for ( int z = 1 ; z <= c1 ; z ++ ) {// este for se encarga de multiplicar paso a paso las matices
       Multiplicacion [ i, j ] = Matriz1 [ i, z ] * Matriz2 [ z, j ] + Multiplicacion [ i, j ] ;
      } } }// este se encarga que la multiplicacion se realize con orden y exactamente
    Console. WriteLine ( "Multiplicacion de 2 Matrices" ) ;
    for ( int i = 1 ; i <= f1 ; i ++ ) { // estos 2 for se encargan en el resultado de los 2 matrices
     for ( int j = 1 ; j <= c2 ; j ++ ) {
      Console. Write ( "{0} " , Multiplicacion [ i, j ] ) ; // muestra el resultado de la multiplicacion de las 2matrices para sacar un 3 matriz que llevara el resultado
     }
     Console. WriteLine ( ) ;
    } } else { Console. WriteLine ( "Error: No se puede multiplicar las matrices" + " Columnas: {0}! = Filas: {1}" , c1, f2 ) ; // este indica que si no hay matrices no se realizara la multiplicacion y el progarama no funcionaria
   }
   Console. Read ( ) ; // con este queda la pantalla para ingresar la matriz y multiplicar y ver el resultado
  } } }