Buscador Elinv.

Búsqueda personalizada

miércoles, 6 de abril de 2011

C# (C Sharp) Imprimir solo el contorno de una matriz por Elinv.


/*
* Codigo desarrollado por Elinv.
* http://www.bragadomas.com/forodeprogramacion/index.php
* http://www.bragadomas.com
* http://www.bragadomas.com.ar
* http://luispedromendez.blogspot.com/
* http://elinv-elinv.blogspot.com/?expref=next-blog
* ---------------------------------------------
* Aplicable enteramente a C o C++ o Java.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //declaramos variables
            int filas, columnas, valor;
            //declaracion de matriz
            int[,] matriz;
            //Variables para los bucles.
            int ciclo_filas = 0;
            int ciclo_columnas = 0;
            //Para los números al azar
            Random azar = new Random();
            //Solicitamos la cantidad de filas
            Console.Write("Ingrese CANTIDAD de FILAS:    \t");
            filas = Convert.ToInt32(Console.ReadLine());
            //Solicitamos la cantidad de columnas
            Console.Write("Ingrese CANTIDAD de COLUMNAS: \t");
            columnas = Convert.ToInt32(Console.ReadLine());
            //salto de línea.
            Console.WriteLine();
            //Instanciamos la matriz
            matriz = new int[filas, columnas];
            //Ciclo para llenar la matriz con números aleatorios.
            //---------------------------------------------------
            for (ciclo_filas = 0; ciclo_filas < filas; ciclo_filas++)
            {
                for (ciclo_columnas = 0; ciclo_columnas < columnas; ciclo_columnas++)
                {
                    //Obtenemos el valor azaroso
                    valor = azar.Next(050);
                    //Lo incluimos en la matriz
                    matriz[ciclo_filas, ciclo_columnas] = valor;
                    //Lo mostramos.
                    Console.Write(matriz[ciclo_filas, ciclo_columnas] +"\t");
                }
                Console.WriteLine();
            }
            //A partir de aquí vemos de imprimir solo el contorno de la matriz.
            //----------------------------------------------------------------
            Console.WriteLine("\nImprimiendo solo el contorno de la matriz.\n\n");
            //Ciclo de impresión.
            for (ciclo_filas = 0; ciclo_filas < filas; ciclo_filas++)
            {
                for (ciclo_columnas = 0; ciclo_columnas < columnas; ciclo_columnas++)
                {
                    //Si las filas con la primera o la última...
                    if (ciclo_filas == 0 || ciclo_filas == filas - 1)
                    {
                        //Imprimimos el valor
                        Console.Write(matriz[ciclo_filas, ciclo_columnas]"\t");
                    }
                    //Si las columnas son la primera o la última
                    else if (ciclo_columnas == 0 || ciclo_columnas == columnas - 1)
                    {
                        //Imprimimos el valor.
                        Console.Write(matriz[ciclo_filas, ciclo_columnas]"\t");
                    }
                    //sino..
                    else
                    {
                        //Imprimimos un guión (cambialo por lo que desees.)
                        Console.Write("-\t");
                    }
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
    }
}