Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: k43l en Mayo 26, 2011, 02:22:36 PM

Título: [SOLUCIONADO] Ayuda con una matriz en c#
Publicado por: k43l en Mayo 26, 2011, 02:22:36 PM
holas, que tal, ando haciendo una aplicacion de matrices en c sharp, se trata de una matriz de 5x5, lo que debe hacer es mostrar la matriz, mostrar la diagonal principal, diagonal secundaria, triangulo superior, triangulo inferior.
he logrado hacer todo lo demás con la excepcion de la diagonal inferior, que no puedo implementarlo en mi codigo, les pido su colaboracion.
aqui les dejo el codigo de mi programa


Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace trabajo_matrices
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("                                   =================");
            Console.WriteLine("                                   MATRIZ CUADRADA");
            Console.WriteLine("                                    CODED BY K43L");
            Console.WriteLine("                                   =================");
            Console.WriteLine("");

            int[,] matriz = new int[5,5];
            int filas;
            int columnas;
            int num1;
            int opc;
           
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("");
            Console.WriteLine("················MENU PRINCIPAL············");
            Console.WriteLine("");
            Console.WriteLine("OPCION 1........MATRIZ CUADRADA");
            Console.WriteLine("OPCION 2........DIAGONAL PRINCIPAL");
            Console.WriteLine("OPCION 3........DIAGONAL SECUNDARIA");
            Console.WriteLine("OPCION 4........TRIANGULO SUPERIOR");
            Console.WriteLine("OPCION 5........TRIANGULO INFERIOR");
            Console.WriteLine("");

            Console.Write("Dame la opcion que deseas: ");
            opc = Int32.Parse(Console.ReadLine());

            switch (opc)
            {
                case 1:
                   
                    for (filas = 0; filas < 5; filas++)
                    {
                        for (columnas = 0; columnas < 5; columnas++)
                        {
                            Console.Write("ingrese el numero: ");
                            num1 = Int32.Parse(Console.ReadLine());
                            matriz[filas, columnas] = num1;
                        }
                    }
                    for (filas = 0; filas < 5; filas++)
                    {
                        Console.WriteLine();
                        for (columnas = 0; columnas < 5; columnas++)
                        {
                            Console.Write(matriz[filas, columnas]);
                        }
                    }
                    break;

                case 2:
                    for (filas = 0; filas < 5; filas++)
                    {
                        for (columnas = 0; columnas < 5; columnas++)
                        {
                            Console.Write("ingrese el numero: ");
                            num1 = Int32.Parse(Console.ReadLine());
                            if (filas == columnas)
                            {
                                matriz[filas, columnas] = num1;
                            }
                            else
                            {
                                Console.WriteLine();
                            }
                        }
                    }
                    for (filas = 0; filas < 5; filas++)
                    {
                        Console.WriteLine();
                        for (columnas = 0; columnas < 5; columnas++)
                        {
                            Console.Write(matriz[filas, columnas]);
                        }
                    }
                    break;

                case 3:
                   
                    break;
                   
                case 4:
                    for (filas = 0; filas < 5; filas++)
                    {
                        for (columnas = filas; columnas < 5; columnas++)
                        {
                            Console.Write("ingrese el numero: ");
                            num1 = Int32.Parse(Console.ReadLine());
                            matriz[filas,columnas] = num1;
                        }
                    }
                    for (filas = 0; filas < 5; filas++)
                    {
                        Console.WriteLine();
                        for (columnas = filas; columnas < 5; columnas++)
                        {
                            Console.Write(matriz[filas,columnas]);
                        }
                    }

                    break;

                case 5:
                    for (filas = 0; filas < 5; filas++)
                    {
                        for (columnas = 0; columnas <= filas; columnas++)
                        {
                            Console.Write("ingrese el numero: ");
                            num1 = Int32.Parse(Console.ReadLine());
                            matriz[filas, columnas] = num1;
                        }
                    }
                    for (filas = 0; filas < 5; filas++)
                    {
                        Console.WriteLine();
                        for (columnas = 0; columnas <= filas; columnas++)
                        {
                            Console.Write(matriz[filas, columnas]);
                        }
                    }
                    break;

                default:
                    Console.WriteLine("Esa opcion no existe");
                    break;
            }
            Console.ReadKey();
        }
    }
}


salu2 y gracias
Título: Re:ayuda con una matriz en c#
Publicado por: Ahkbar en Junio 08, 2011, 12:46:57 PM
Puedes fijarte en los valores que tienen los indices, filas parte de 0 y columnas de 4 para el segundo valor, uno incrementa el otro disminuye.