CLR: .Net / Mono / Boo / Otros CLR > C#
Array de dos dimensiones
(1/1)
Humberto12345:
Hola, como algunos saben, apenas voy comensando con C# :comp: , y me encargaron hacer un array que hice pero en 2 dimensiones, lo que hace mi array es pedir elementos e imprimirlos en orden, pero ahora necesito hacer el codigo en 2 dimensiones, alguien podria ayudarme o explicarme que es lo que tengo que hacer? ,, aqui les dejo mi codigo:
--- Código: C# --- using System; using System.Collections.Generic;using System.Linq;using System.Text; namespace ConsoleApplication2{ class PorfinArray { public static void pideTamaño() { int element; int array; int index; Console.WriteLine("Dame el tamaño del array"); array = int.Parse(Console.ReadLine()); int[] x; x = new int[array]; Console.WriteLine("Dame Elementos del array"); for (index = 0; index < array; index++) { element = int.Parse(Console.ReadLine()); x[index] = element; //<-------- } string salida = "Valores de los elementos originalesn"; for (int i = 0; i < x.Length; i++) salida += " " + x[i]; // ordenar elementos del arreglo OrdenarBurbuja(x); salida += "nnValores de los elementos en orden descendenten"; for (int i = 0; i < x.Length; i++) salida += " " + x[i]; Console.WriteLine(salida); Console.ReadKey(); } static public void OrdenarBurbuja(int[] b) { for (int p = 1; p < b.Length; p++) for (int i = 0; i < b.Length - 1; i++) if (b[i] > b[i + 1]) // comparar intercambio(b, i); // intercambiar } // intercambio de dos elementos en un arreglo static public void intercambio(int[] c, int primero) { int temp; // variable temporal para el intercambio temp = c[primero]; c[primero] = c[primero + 1]; c[primero + 1] = temp; } static void ordena() { Console.WriteLine(""); } static void imprime() { Console.WriteLine(""); } static void Main() { PorfinArray.pideTamaño(); PorfinArray.ordena(); PorfinArray.imprime(); } }}
Bueno, muchas gracias :good: saludos y gracias por apoyarme
Newtek:
Bueno primeramente tienes que crear el Array en dos dimenciones
--- Código: C# ---int[,] bDimenArray = new int[x,y];
Eso seria para declararlo.
Y esto para recorrerlo.
--- Código: C# --- for (int i = 0; i < x; i++) { for (int j=0; j < y; j++) { bDimenArray[i,j] = (i * 100) + j; // esto es solo un ejemplo... no es para ordernar la informacion. } } }
Fijate que recorre primero el vector X y luego el vector Y... es buena formala pensarlo en cordenadas para que asi sea mas facil de imaginar.
Ahora bien para ordenarlo te lo dejo a ti... intenta y me avisas donde te quedas pegado.
Saludos.
Newtek
Web Hosting, Design, Development & SEO at Newtek Web Hosting
Humberto12345:
mmm, no me deja ordenarlos, jaja se me hace muy dificil esto de arrays en 2 dimensiones :brickwall:
bueno seguire intentando, gracias
Newtek:
Y como estas tratando de ordenarlos? Que valor tienes en el array principal? Para efectos del ejemplo y para darle continuidad al problema el "X" seria el principal y "Y" seria el array que esta dentro de cada uno de los otros
?
Como los estas ordenando?
Avisame,
Newtek
Web Hosting, Design, Development & SEO at Newtek Web Hosting
morringos:
Bueno bro, no entendí muy bien lo que quieres hacer, pero así como te dijo Newtek es como se declaran los arreglos de X dimensiones, entre más comas agregas, más dimensiones serán.
Lo otro que vi que tenías que ordenar, en sí, ¿cómo es que los quieres ordenar los elementos? ¿quiéres ir agregando números aleatorios y después irlos mostrando de forma descendente del mayor al menor? ¿probaste la clase Array que tiene .NET Framework?, te podría ser de ayudar que tal vés, utilizando el Array.Sort(tuarreglo) y con eso, te deja tu arreglo con los números ordenador de menor a mayor, lo cual, que si quieres hacer un mostrado del mayor al menor, sólamente de posiciones en el último elemento y te vas decrementando con la variable, ya sea del ciclo for, while ó el que uses.
Saludos bro!;
Morringos Phyps!; ;)
Navegación
Ir a la versión completa