Ejercicios del Curso de Programación en C#

[Comenzando con C#]

(Trabajaremos con Matricez en C#)

Fecha: 03/Sep/2005 (28 de Agosto de 2005)
Autor: Alejandro Domingo Velazquez Cruz [email protected]

 

 Por favor no se olviden de calificar este curso, su opinión cuenta, buena o mala será tomada en cuenta

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 simpleza


Aqui podemos ver los datos al ser introducidos


Aqui podemos ver el resultado de la suma de las matricez
AVISO: Impartiré unos cursos en linea TOTALMENTE GRATUITOS en la página 
http://groups.msn.com/MUGVeracruz

 


Anterior Índice Índice

ir al índice