Ejercicios del Curso de
Programación en C# [Comenzando con C#] Fecha: 03/Sep/2005 (28 de Agosto de
2005)
|
Ejercicio 5
1. Utilizar dos matrices bidimensionales de elementos int, construir una aplicación que permita al usuario ingresar el tamaño de cada dimensión e ingresar el valor de cada posición. 2. Una vez que se hayan cargado las dos matrices, la aplicación debe proporcionar una tercera matriz que contenga en cada posición la suma de los elementos correspondientes de las dos matrices que proporcionó el usuario. using System; namespace ConsoleApplication1 { class QuintoEjercicio { [STAThread] //Primero las funciones que utilizaremos public static void Cargar( int[,] A, int[,] B ) //Recibimos dos matricez para poder llenarlas con los datos que nos de el usuario { //Aqui usamos dos for uno dentro de otro para poder recorrer todas las posiciones for( int i=0 ; i < A.GetLength(0) ; i++ ) { for( int j=0 ; j < A.GetLength(1) ; j++ ) { Console.Write("\nValor A: [{"+(i+1)+"},{"+(j+1)+"}] :"); A[i,j] = int.Parse(Console.ReadLine()); Console.Write("Valor B: [{"+(i+1)+"},{"+(j+1)+"}] :"); B[i,j] = int.Parse(Console.ReadLine()); } } } public static void Sumar( int[,] A, int[,] B, int[,] C ) //Aqui recibimos tres matricez dos para leer y sumarlas entre si y una tercera para almacenar el resultado { //Igual que antes utilizamos dos for anidados para poder recorrer todas las posiciones for( int i=0 ; i < A.GetLength(0) ; i++ ) for( int j=0 ; j < A.GetLength(1) ; j++ ) C[i,j] = A[i,j] + B[i,j]; } public static void Mostrar( int[,] C ) //Aqui solo recibimos la matriz que guarda el resultado de la suma de las dos anteriores { Console.WriteLine("\nEl resultado de la suma de ambas Matrices es: "); //Recorremos todas las posiciones for( int i=0 ; i < C.GetLength(0) ; i++ ) for( int j=0 ; j < C.GetLength(1) ; j++ ) Console.WriteLine("Valor C: [{"+(i+1)+"},{"+(j+1)+"}] : "+C[i,j]); //Imprimimos el resultado de la suma } static void Main(string[] args) { int[,] A,B,C; //Nuestras tres matricez sin tamaño definido int f,c; //Las variables que guardaran el numero de filas y columnas try //Como siempre ahi que llevar un control de errores { Console.Write(" Numero de Filas: "); f = int.Parse(Console.ReadLine()); //Guardamos el numero de filas Console.Write("Numero de Columnas: "); c = int.Parse(Console.ReadLine()); //guardamos el numero de columnas A = new int[f,c]; //Inicializamos las tres matricez con las mismas dimensiones B = new int[f,c]; C = new int[f,c]; Cargar(A,B); //Llenamos las dos primeras matricez Sumar(A,B,C); //Sumamos las dos primeras matricez y vaciamos el resultado en la tercera Mostrar(C); //Mostramos el resultado de la suma } catch( Exception e ) //En caso que haya ocurrido algun error { Console.WriteLine( e.Message ); //Imprimimos el mensaje de error para poder saber que paso } finally { Console.WriteLine("\nGracias por haber utilizado nuestro programa"); //Sin importar si haya o no haya habido errores se agradece al usuario su preferencia } } } } Nota 1: Siempre pongo el try catch en el main porque al ser llamadas las funciones desde el main cualquier error que ocurra en cualquiera de las funciones sera captado por ese unico catch en el main, eso es mas simple que un try catch en cada funcion, si deseamos un control mas preciso ahi que lanzar excepciones personalizadas como en el ejemplo anterior, las cuales se veran reflejadas en el catch del main Nota 2: Ahi que mantener el código lo mas simple posible, pero sin sobreutilizar las funciones, el código que escribo procuro hacerlo entendible a primera vista y con un flujo muy directo y simple, siempre ahi que facilitarnos la vida, esta costumbre que nos hacemos desde los primeros programas es muy util cuando trabajamos con programas con cientos o miles de lineas de codigo donde es facil perderse si no se ha construido con la suficiente simplezaAqui podemos ver los datos al ser introducidos Aqui podemos ver el resultado de la suma de las matricezAVISO: Impartiré unos cursos en linea TOTALMENTE GRATUITOS en la página http://groups.msn.com/MUGVeracruz