Programa en C# de Matrices

Iniciado por Castiel, 16 Agosto 2014, 02:58 AM

0 Miembros y 1 Visitante están viendo este tema.

Castiel

Hola buenas tardes Alguien podria ayudarme con la solucion del siguiente ejercicio en C#, se trata de lo siguiente, pido ayuda dado a que conozco muy poco sobre el tema les agradezco de antemano:

Defina una matriz de longitud 5x5, cuyo tipo de dato permita la asignación del carácter asterisco (*).
El programa debe solicitar al usuario que capture las coordenadas en donde desea insertar un asterisco, por ejemplo: renglón 1, columna 2.
El programa asignará, en las coordenadas capturadas por el usuario, un símbolo de asterisco.
Debe incluirse una pregunta dirigida al usuario para determinar si desea continuar con la captura de las coordenadas, en caso de no seguir con ello el programa detendrá este proceso.
Al finalizar la captura, el programa deberá imprimir la matriz, esté completa o no, en el siguiente formato:


*   *   *   *   *
*   *   *   *   *
*   *   *   *   *
*   *   *   *   *
*   *   *   *   *


Espero contar con su valioso apoyo, saludos cordiales.

Eleкtro

#1
Buenas

Aquí no le hacemos el trabajo a nadie, ayudamos a que aprendas como conseguir hacerlo por ti mismo.

¿Donde está tu código?, muestra tu progreso.

PD: Un detalle que no has aclarado, ¿eso lo quieres hacer en una aplicación CommandLine-Interface?.

Saludos!








Yaldabaot

Esto me suena al típico enunciado de un trabajo, parece que lo que quieres es un código ya hecho,  checa este tema http://www.csharpya.com.ar/detalleconcepto.php?codigo=146&inicio=20. No pidas enunciados así, trata de hacerlo por ti mismo y luego muestra tu progreso.
Nunca me contestan -_-

Castiel

Hola buenas noches, en verdad estoy bastante novato no le entiendo a muchas cosas sobre los identificadores y la sintaxis eh leído varios tutos pero no se ni como definir una matriz de 5x5, soy fan de las compus pero la verdad necesito explicación personalizada dado a que estudio en linea y muchísimas cosas no las conozco, por mas que trato dont understand, ayúdenme porfa, yo solo sinceramente no creo resolver el problema, entiendo que la idea es aprender pero necesito ayuda personalizada y a tal grado que seria casi casi con manzanas para poder entender a fondo como se declaran las variables y como definir la sintaxis, soy de los que necesita explicación paso a paso, sorry ese es el punto, con gusto me comprometo ha aprender de alguien que desee ayudarme.

Saludos cordiales a todos, que estén bien y dios los bendiga.

eLank0

Tu problema es muy sencillo de resolver.  :laugh:

Por lo tanto empezaría echando una ojeada a algun tutorial de iniciación de programación en el lenguaje que desees. Ya que tu  problema puede resolverse en los lenguajes más modernos sin ningún tipo de problema.

Salu2  ;-)

Castiel

#5
Hola amigos les presento mis avances con respecto al código del programa alguien podría ayudarme porfavor, necesito que me lo revisen para saber que tanto bien voy con la solución del problema, les adjunto el código:

Código (csharp) [Seleccionar]
namespace ConsoleApplication1
{
   class Program
   {
       static void Main(string[] args)
       {
           int[,] tabla;
           tabla = new int[5, 5]
           {
              {1,2,3,4,5},
              {6,7,8,9,10,},
              {11,12,13,14,15},
              {16,17,18,19,20},
              {21,22,23,24,25}
           };

           {
               LlenarMatriz (tabla);
               Console.ReadKey();
           };

           Console.WriteLine("Capture las coordenadas donde se insertará un asterisco");
           Console.ReadKey();
       }

       public static void LlenarMatriz(int[,] ptabla)
           {
               int fil=0,col=0,sum=0;
               col=20;
               for(int c=0;c<5;c++)
           {
                       fil=10;
                       for(int f=0;f<5;f++)
                       {
                             Console.SetCursorPosition(col,fil);
                             ptabla[c,f]=Convert.ToInt16(Console.ReadLine());
                             fil=fil+1;
                             sum=sum+ptabla[c,f];
                       }
                       col=col+5;
           }
           Console.SetCursorPosition(20,15);
           Console.WriteLine("Acumulado Matriz={0}",sum);
           }//Cierra Método


shybrid

#6
Hola yo tengo este codigo , pero no puedo ingresar las coordenadas mayores a 5 es decir si pongo 1,5 2,5 3,5 4,5 y de plano las 5,1 en adelante no me deja, me marca que ingrese la coordenada correcta , me pueden ayudar a terminar el codigo? :huh:

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

namespace ConsoleApplication1
{
   class Program
   {
       static void Main(string[] args)
       {
           String[,] M = {{"","","","",""},
                        {"","","","",""},
                        {"","","","",""},
                        {"","","","",""},
                        {"","","","",""}};
           String seguir = "Y";
           Boolean flag = true;
           while (flag)
           {
               if (seguir.Equals("Y") || seguir.Equals("y"))
               {
                   Console.WriteLine("Ingrese coordenadas (Formato {x,y}): ");
                   String coordenada = Console.ReadLine();
                   String[] split = coordenada.Split(',');
                   int x = int.Parse(split[0]);
                   int y = int.Parse(split[1]);
                   if (x < 5 && y < 5)
                   {
                       M[x, y] = "*";
                       Console.WriteLine("Desea continuar conla captura de coordenadas?: Y/N");
                       seguir = Console.ReadLine();
                   }
                   else
                   {
                       Console.WriteLine("Ingrese una coordenada correcta.");
                   }
               }
               else
               {
                   flag = false;
                   mostrarMatrizCuadrada(M);
                   Thread.Sleep(2000);
               }
           }

       }
       public static void mostrarMatrizCuadrada(String[,] M)
       {
           int largo = M.Length;
           Console.WriteLine(largo);
           for (int c = 0; c < 5;c++ )
           {
               for (int f = 0; f < 5;f++ )
               {
                   Console.Write(M[c,f]+"   ");
               }
               Console.WriteLine("");
           }
       }
   }
}

Eleкtro

#7
1. Para publicar código hay que insertarlo dentro de su respectiva etiqueta GeShi.

2. Las preguntas ajenas se publican en nuevos temas para poder llevar un orden en el foro, no se debe invadir los temas de los demás.

Lean y sobretodo respeten las normas, porfavor.
(o cerraré el hilo)




Cita de: shybrid en 24 Agosto 2014, 01:13 AM
si pongo 1,5 2,5 3,5 4,5 y de plano las 5,1 en adelante no me deja, me marca que ingrese la coordenada correcta , me pueden ayudar a terminar el codigo?

El código está bien, lo que ocurre es que en C# los índices empiezan por 0, no por 1, así pues "0,0" es el mínimo, y "4,4" es el máximo.

Creo que con el código que has facilitado ya no es necesario responder al compañero @Castiel, ahí está todo lo necesario.

Saludos!








Castiel

OK gracias por las recomendaciones ahora una pregunta me podrias eshar la mano con mi program, me trabe y no se que es lo que me ah fallado saludos.

Castiel

#9
Hola y para la solucion de este mismo problema pero con este codigo, como encuentro el problema dado que al correrlo me dice que hay un error en el metodo main, que le falta el cuerpo o algo asi se los proporciono parasaber que es lo que sucede con esta sintaxis.   :huh:

Código (csharp) [Seleccionar]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
   class Program
   {
       public static void main(char[] args);
           
       char[,] matrix = new char[5, 5];
           
       public void insertar()
       {
           for (int i = 0; i < 1; i++)
           {
               for (int j = 0; j < 1; j++)
               {
                   Console.Write("En que fila desea agregar el caracter");
                   string linea;
                   linea = Console.ReadLine();
                   int fila = int.Parse(linea);

                   Console.Write("En que columna desea agregar el caracter");
                   linea = Console.ReadLine();
                   int columna = int.Parse(linea);

                   matrix[fila, columna] = '*';

               }
           }
       }
   }
}
[/quote]


Espero su valioso apoyo saludos cordiales
:D