elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Parametros de entrada, arreglos bidimensionales
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Parametros de entrada, arreglos bidimensionales  (Leído 8,950 veces)
greenselves

Desconectado Desconectado

Mensajes: 73



Ver Perfil
Parametros de entrada, arreglos bidimensionales
« en: 15 Marzo 2010, 16:19 pm »

 :DHola! tengo que hacer un programa en C# donde tengo que imprimir una tabla cuadrada de caracteres, esto con arreglos bidimensionales.
Mi problema es el paso del Arreglo Bid. al constructor. tengo esto.



Código
  1. using System;
  2.  
  3. public class Arreglo
  4. {
  5. char[,] numeros;
  6. int i, j;
  7.  
  8. public Arreglo( char [,] arreglo)
  9. {  //constructor
  10.  
  11. numeros = new char[arreglo.Length, arreglo.Length];
  12.  
  13. //Lo he intentado con numeros = new char[arreglo.Length];
  14. //pero marca error
  15.  
  16. for ( i=0; i < numeros.Length; i++)
  17. {
  18. for( j=0; j< numeros.Length; j++)
  19. {
  20. numeros[i,j] = arreglo[i,j];
  21. }
  22. }
  23. }//constructor
  24. }//class Arreglo
  25.  
  26. class MainApp
  27. {
  28. static void Main()
  29. {
  30. char[,] numeros = { {'O','O','O'},{'O','O','O'} };
  31. Arreglo a = new Arreglo (numeros);
  32.  
  33. Console.ReadLine();
  34. } // main
  35. } // main app

Al compilar [lo compilo desde consola], no me marca error
pero al ejecutar me aparece una excepcion

la excepcion es:

Unhandled Exception: System.IndexOutOfRnageException: Index was outside the bounds of the array.
at Arreglo..ctor<Char[,] arreglo>
at MainApp.Main<>

Espero me puedan ayudar, por su ayuda gracias!!


« Última modificación: 15 Marzo 2010, 16:30 pm por Novlucker » En línea

Greenselves
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Parametros de entrada, arreglos bidimensionales
« Respuesta #1 en: 15 Marzo 2010, 16:28 pm »

Esto te parece cuadrado? :rolleyes:
{ {'O','O','O'},{'O','O','O'} }

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Parametros de entrada, arreglos bidimensionales
« Respuesta #2 en: 15 Marzo 2010, 18:42 pm »

A mi me parece un rectángulo! :D
En línea

greenselves

Desconectado Desconectado

Mensajes: 73



Ver Perfil
Re: Parametros de entrada, arreglos bidimensionales
« Respuesta #3 en: 15 Marzo 2010, 19:42 pm »

hmm Mas bien es como ejemplo, el dato es que no me daje compilar porque la forma en la que hago el paso por parametros esta incorrecta.
Es por eso que necesita la ayuda
En línea

Greenselves
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Parametros de entrada, arreglos bidimensionales
« Respuesta #4 en: 15 Marzo 2010, 19:45 pm »

Pero eso no es lo que dice el error que has dejado ... el error que nos dejas es justamente por eso ... tienes un array rectangular, y no cuadrado, así que mientras puedes recorrer un lado "más lejos", el otro se termina antes :P

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
greenselves

Desconectado Desconectado

Mensajes: 73



Ver Perfil
Re: Parametros de entrada, arreglos bidimensionales
« Respuesta #5 en: 15 Marzo 2010, 19:52 pm »

Pero lo he intentado asi como dices

Código
  1. class MainApp
  2. {
  3. static void Main()
  4. {
  5. char[,] numeros = {{'O','O','O'},{'O','O','O'},{'O','O','O'}};
  6. Arreglo a = new Arreglo (numeros);
  7. a.Imprimir();
  8.  
  9. Console.ReadLine();
  10. } // main
  11. }

Ejecutando me aparece el mismo error.
que deberia hacer??
« Última modificación: 15 Marzo 2010, 20:08 pm por Novlucker » En línea

Greenselves
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Parametros de entrada, arreglos bidimensionales
« Respuesta #6 en: 15 Marzo 2010, 20:04 pm »

No veo nada malo con el código, seguro que el error te da ahí y no en el método imprimir()?

Etiquetas de código!

Saludos
« Última modificación: 15 Marzo 2010, 20:06 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
greenselves

Desconectado Desconectado

Mensajes: 73



Ver Perfil
Re: Parametros de entrada, arreglos bidimensionales
« Respuesta #7 en: 15 Marzo 2010, 20:07 pm »


   // mi metodo imprimir
   public void Imprimir()
   {

   Console.WriteLine();
      for (i=0; i<3; i++)
      {
   
         for(j=0; j<3; j++)
         {
            Console.Write("El valor {0} ", numeros[i,j]);
   
         }
      }
   }// imprimir
En línea

Greenselves
greenselves

Desconectado Desconectado

Mensajes: 73



Ver Perfil
Re: Parametros de entrada, arreglos bidimensionales
« Respuesta #8 en: 15 Marzo 2010, 20:37 pm »


Y a encontre mi problema
tuve que cambiar en el constructor numeros.Length por el tamaño del arreglo (3);
y el codigo queda asi

   public Arreglo( char [,] arreglo)
   {  //constructor

      numeros = new char[arreglo.Length,arreglo.Length];

      for ( i=0; i < 3; i++)
      {
         for( j=0; j< 3; j++)
         {
         numeros[i,j] = arreglo[i,j];
         }

      }
   
   }



   // mi metodo imprimir
   public void Imprimir()
   {

   Console.WriteLine();
      for (i=0; i<3; i++)
      {
   
         for(j=0; j<3; j++)
         {
            Console.Write(" {0} ", numeros[i,j]);
   
         }
                Console.WriteLine();
      }
   }// imprimir


gracias por su ayuda
saludos!!!
En línea

Greenselves
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Parametros de entrada, arreglos bidimensionales
« Respuesta #9 en: 15 Marzo 2010, 20:42 pm »

Aaaaaaaaaaaa!

Ya he visto cual es el problema, no me había dado cuenta :P ... estas usando numeros.length, y el largo de una matriz es siempre la suma de todas sus dimensiones, así que si tienes una de 3x3, entonces el largo es 9, y ahí es donde te pasabas en el for

Tienes que usar getlength

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Bash; Pasaje de arreglos como parametros a funciones
Scripting
astinx 1 3,893 Último mensaje 29 Octubre 2011, 20:24 pm
por astinx
[C] Paso de arreglos bidimensionales a funciones. (?)
Programación C/C++
oblivionxor 9 10,112 Último mensaje 22 Febrero 2013, 06:45 am
por oblivionxor
arreglos bidimensionales y funciones
Programación C/C++
m@o_614 3 1,907 Último mensaje 16 Julio 2013, 22:33 pm
por eferion
duda con arreglos bidimensionales
Programación C/C++
nicolas04 1 1,116 Último mensaje 26 Junio 2014, 21:23 pm
por Flakito81
Arreglos Bidimensionales
Java
Marthy 1 587 Último mensaje 9 Febrero 2021, 15:50 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines