Autor Tema: C# Ejemplo Uso Try Catch Operar con Matrices (arrays o arreglos bidimensionales)  (Leído 2871 veces)

Gabrield Marquez

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 15
    • Ver Perfil
Código del ejemplo:

Código: [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace try_catch_1
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            int cfmA = GetCantidadFila("Cantidad Fila Matriz A");
            int ccmA = GetCantidadFila("Cantidad Columna Matriz A");

            int cfmB = GetCantidadFila("Cantidad Fila Matriz B");
            int ccmB = GetCantidadFila("Cantidad Columna Matriz B");

            Matriz omA = new Matriz(cfmA, ccmA);
            Matriz omB = new Matriz(cfmB, ccmB);
            Matriz omS;

            Console.WriteLine("Cargando Matriz A");
            omA.CargarMatriz();
            Console.WriteLine("-------------------");

            Console.WriteLine("Cargando Matriz B");
            omB.CargarMatriz();
            Console.WriteLine("------------------");

            Console.WriteLine("Matriz A");
            MostrarMatriz(omA.GetMatriz());
            Console.WriteLine("----------------");

            Console.WriteLine("Matriz B");
            MostrarMatriz(omB.GetMatriz());
            Console.WriteLine("-----------------");

            try
            {

                omS = omA + omB;

                Console.WriteLine("Matriz Suma");
                MostrarMatriz(omS.GetMatriz());
                Console.WriteLine("----------------");

            }
            catch (Exception e)
            {

                Console.WriteLine("Error : " + e.Message);
            }
        }

        public static void MostrarMatriz(int[,] m)
        {

            int f = m.GetLength(0);
            int c = m.GetLength(1);

            Console.WriteLine();

            for (int i = 0; i < f; ++i)
            {
                for (int j = 0; j < c; ++j)
                {
                    Console.Write(" {0} \t", m[i, j]);
                }
                Console.WriteLine();
            }
            Console.WriteLine();
        }

        public static int GetCantidadFila(string msg)
        {
            return GetValor(msg);
        }

        public static int GetCantidadColumna(string msg)
        {
            return GetValor(msg);
        }

        private static int GetValor(string msg)
        {
            Boolean valorCorrecto = true;
            int valor = 0;

            do
            {
                Console.Write("{0} : ", msg);
                try
                {
                    valor = int.Parse(Console.ReadLine());
                    valorCorrecto = true;
                }
                catch (Exception e)
                {
                    valorCorrecto = false;
                    Console.WriteLine("Error {0} : ", e.Message);
                }
            } while (!valorCorrecto);
            return valor;
        }
    }


    public class Matriz
    {
        private int cantFila;
        private int cantColumnas;

        private int[,] matriz;

        public Matriz(int nf, int nc)
        {
            cantFila = nf;
            cantColumnas = nc;
            matriz = new int[nf, nc];
        }

        public void CargarMatriz()
        {
            for (int i = 0; i < this.cantFila; ++i)
            {
                for (int j = 0; j < this.cantColumnas; ++j)
                {
                    bool hayError = true;

                    while (hayError)
                    {
                        Console.Write(" Valor (  {0},  {1}) : ", i, j);
                        try
                        {
                            int valor = int.Parse(Console.ReadLine());
                            matriz[i, j] = valor;
                            hayError = false;
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("Valor incorrecto,  verficar......");
                        }
                    }
                }


            }
        }

        public int GetCantidadFilas()
        {
            return this.matriz.GetLength(0);
        }

    }
}
« Última modificación: 07 de Enero 2016, 15:22 por Ogramar »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".