Foros del Web » Programación para mayores de 30 ;) » .NET »

Arreglo Bidimencional en C#

Estas en el tema de Arreglo Bidimencional en C# en el foro de .NET en Foros del Web. hola, aki desvelando los parpados con este codigo que no sale ... =( el problema es este: 1. Hacer un windowaaplicationform y dentro de este ...
  #1 (permalink)  
Antiguo 02/10/2009, 04:22
 
Fecha de Ingreso: octubre-2009
Mensajes: 2
Antigüedad: 14 años, 7 meses
Puntos: 0
Arreglo Bidimencional en C#

hola, aki desvelando los parpados con este codigo

que no sale ... =(

el problema es este:

1. Hacer un windowaaplicationform y dentro de este crear y programar un boton suma, uno de borrardo y otro para salir(los dos ultimos ya los tengo).

2. Hacer que los datos del arreglo sean leidos por textboxs, que los valores se guarden en

una matriz o arreglo bidimencional(float[,] Matriz = new float[4,4]

3. Que lea los datos de cada una de las posiciones del arreglo y los sume por fila y por columna

Matriz[0,0]= int.parse(textbox1.text);

Matriz[0,1]= int.parse(textbox2.text);

Matriz[0,2]= int.parse(textbox3.text);

Matriz[0,3]= int.parse(textbox4.text);

Matriz[1,0]= int.parse(textbox5.text);

Matriz[1,1]= int.parse(textbox6.text);

...

4. Y que la suma de los datos de cada fila y columna los imprima en "etiquetas"(label1, label2...) cada una con su respectiva valor.



agredeciendo de ante mano su apoyo gracias.

un saludo
  #2 (permalink)  
Antiguo 02/10/2009, 04:44
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Arreglo Bidimencional en C#

Juraría que por algún motivo no estás explicando bien lo que pretendes hacer.

¿Si tienes 6 textbox para que necesitas una matriz bidimensional de 4 elementos, no te llega con una de 3?

Por otra parte no le veo gran problema al código, solo tienes que definir el método suma enviandole como parámetros los elementos de la matriz que quieras sumar, y asignar el valor obtenido al label, transformándolo en texto, es decir... tipico problema de casting.

Pero, lo dicho, creo que no tienes claro lo que tienes que hacer, y si eso es así, no hay forma de que puedas sacar el código por tí mismo, créeme, lo único que harías es copiar algo que funciona sin entenderlo.
  #3 (permalink)  
Antiguo 02/10/2009, 05:08
 
Fecha de Ingreso: octubre-2009
Mensajes: 2
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Arreglo Bidimencional en C#

el caso es qe ya tenia la mayoria del codigo "hecho" con la sentencia for, pero no me mandaba los resultados en los labels asi qe lo puse asi el codigo del boton sumar

private void button1_Click(object sender, EventArgs e)
{

int[] Filas = new int[4];
int[] Columnas = new int[4];

int[,] Matriz = new int[4,4];

//CAPTURA DE DATOS
//Llenamos la matriz con datos introducidos desde teclado, por medio de un ciclo for
//for (int i = 0; i <= 4; i++)
//for (int j = 0; j <= 4; j++)
//{

//SIN NECESIDAD DE USAR EL FOR, OVIO GUARDA LOS DATOS
Matriz[0, 0 ]= int.Parse(textBox1.Text);
Matriz[0, 1] = int.Parse(textBox2.Text);
Matriz[0, 2] = int.Parse(textBox3.Text);
Matriz[0, 3] = int.Parse(textBox4.Text);
Matriz[1, 0] = int.Parse(textBox5.Text);
Matriz[1, 1] = int.Parse(textBox6.Text);
Matriz[1, 2] = int.Parse(textBox7.Text);
Matriz[1, 3] = int.Parse(textBox8.Text);
Matriz[2, 0] = int.Parse(textBox9.Text);
Matriz[2, 1] = int.Parse(textBox10.Text);
Matriz[2, 2] = int.Parse(textBox11.Text);
Matriz[2, 3] = int.Parse(textBox12.Text);
Matriz[3, 0] = int.Parse(textBox13.Text);
Matriz[3, 1] = int.Parse(textBox14.Text);
Matriz[3, 2] = int.Parse(textBox15.Text);
Matriz[3, 3] = int.Parse(textBox16.Text);
//}

//ESTAS SE SUPONEN QE SON LOS RESULTADOS DE CADA OPERACION
float Filas1 = 0;
float Filas2 = 0;
float Filas3 = 0;
float Filas4 = 0;
float Columna1 = 0;
float Columna2 = 0;
float Columna3 = 0;
float Columna4 = 0;

//AQUI SE SUPONE QE VAN DOS FOR "SEGUN"

Filas1 = Matriz[0, 0] + Matriz[0, 1] + Matriz[0, 2] + Matriz[0, 3];
Filas2 = Matriz[1, 0] + Matriz[1, 1] + Matriz[1, 2] + Matriz[1, 3];
Filas3 = Matriz[2, 0] + Matriz[2, 1] + Matriz[2, 2] + Matriz[2, 3];
Filas4 = Matriz[3, 0] + Matriz[3, 1] + Matriz[3, 2] + Matriz[3, 3];
Columna1 = Matriz[0, 0] + Matriz[1, 0] + Matriz[2, 0] + Matriz[3, 0];
Columna2 = Matriz[0, 1] + Matriz[1, 1] + Matriz[2, 1] + Matriz[3, 1];
Columna3 = Matriz[0, 2] + Matriz[1, 2] + Matriz[2, 2] + Matriz[3, 2];
Columna4 = Matriz[0, 3] + Matriz[1, 3] + Matriz[2, 3] + Matriz[3, 3];

label1.Text = Filas1.ToString();
label2.Text = Filas2.ToString();
label3.Text = Filas3.ToString();
label4.Text = Filas4.ToString();
label5.Text = Columna1.ToString();
label6.Text = Columna2.ToString();
label7.Text = Columna3.ToString();
label8.Text = Columna4.ToString();

label1.Show();
label2.Show();
label3.Show();
label4.Show();
label5.Show();
label6.Show();
label7.Show();
label8.Show();

ASI LO DEJE Y SI LOS IMPRIME
PERO LA IDEA ES QE LOS TENGO QE HACER YA SEA CON LA SENTENCIA
1. FOR, O CON EL
2. DO... WHILE
  #4 (permalink)  
Antiguo 05/10/2009, 01:11
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Arreglo Bidimencional en C#

Te recomiendo que lo primero que hagas es conseguir que el resultado se muestre en los labels tal y como lo tienes, después ya buscarás la forma de hacer los bucles. Si no, tienes ahi todavia el problema de fondo, que es que no has averiguado por qué no se muestran los textos.

VS dispone de una buena herramienta de debug, así que ya sabes, pon un breakpoint y vete mirando por donde pasa el código y que valores toma para ver donde falla.

--- Edito ---

Nota: Aunque parezca mentira el fallo más común es hacerlo a mano y olvidarse de poner runat="server" tanto en el formulario como en el control...

Un poco de ayuda (debajo de todo hay bastante info sobre los labels):

http://www.java2s.com/Code/ASP/Asp-C...tonactionC.htm

Última edición por Fuzzylog; 05/10/2009 a las 01:22 Razón: Edito para añadir información extra.
  #5 (permalink)  
Antiguo 05/10/2009, 09:04
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Arreglo Bidimencional en C#

pero si te das cuenta es una aplicacion windows y no web.

lo mejor que puedes hacer para este tipo de problemas es que tus controles tengan la misma distribucion que deseas, es decir si tienes una matriz de Textboxes puedes usar un container como el tablelayoutpanel meter tus controles y simplemente hacer algo como

for(int filas=0; filas<controlTableLayout.RowsCount;filas++)
for(int columnas=0;columnas<controlTableLayout.ColumnCount ;columnas++)
matriz[fila,columnas]= int.Parse(((TextBox)controltableLayout.GetControlF romPosition(filas,columnas)).Text);

PD puede haber errores de sintaxis pero creo que seria la mejor solucion para tu problema.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:26.