Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: greenselves en 18 Marzo 2010, 14:13 pm



Título: Problema con imprimir diagonales en matriz bidimensional
Publicado por: greenselves en 18 Marzo 2010, 14:13 pm
hola! Tengo que hacer un programa en C#, donde coloco un identificador desntro de una tabla de 8*8, y despues imprimir sus 4 diagonales, dentro de la tabla.

es decir

*    *
 * *
  A
 * *
*    *

tengo hecho esto

      for(i=fila+1; i<8; i++ )
      {
         columna++;
         var[i,columna]='*';
      } // diagonal derecha abajo

donde me imprime la diagonal derecha, hacia abajo,
pero ya que continuo con las otras 3 diagonales, me marca error, al ejecutar.

      for ( i=fila-1; i>=0; i-- )
      {   
         columna++;
         var[i,columna]='*';
      }//diagonal derecha arriba
Dice que me paso del limite del arreglo.

Algun consejo para poder resolver mi problema?

nota: antes de cada ciclo tengo que inicializar nuevamente fila y columna,
porque sino, cada variable viene incrementado antes de entrar a otro ciclo for.

Por su ayuda gracias.





Título: Re: Problema con imprimir diagonales en matriz bidimensional
Publicado por: Shell Root en 18 Marzo 2010, 18:58 pm
Te puede ayudar en algo, conviertelo a C#.
Código
  1.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.        Dim strMatriz(4, 4) As Integer 'Matriz
  3.        'Seteo de datos dentro de la matriz
  4.        strMatriz(0, 0) = 1
  5.        strMatriz(0, 1) = 2
  6.        strMatriz(0, 2) = 3
  7.        strMatriz(0, 3) = 4
  8.        strMatriz(1, 0) = 5
  9.        strMatriz(1, 1) = 6
  10.        strMatriz(1, 2) = 7
  11.        strMatriz(1, 3) = 8
  12.        strMatriz(2, 0) = 9
  13.        strMatriz(2, 1) = 10
  14.        strMatriz(2, 2) = 11
  15.        strMatriz(2, 3) = 12
  16.        strMatriz(3, 0) = 13
  17.        strMatriz(3, 1) = 14
  18.        strMatriz(3, 2) = 15
  19.        strMatriz(3, 3) = 16
  20.  
  21.        'Diagonal de Sup-Izq|Inf-Der
  22.        ' 1 2  3  4
  23.        ' 5 6  7  8
  24.        ' 9 10 11 12
  25.        '13 14 15 16
  26.  
  27.        'Print = 1 6 11 16
  28.        Dim dia1 As String
  29.        For i As Integer = 0 To 3
  30.            For j As Integer = 0 To 3
  31.                If i = j Then
  32.                    dia1 = dia1 & strMatriz(i, j) & " "
  33.                End If
  34.            Next
  35.        Next
  36.        MsgBox(dia1)
  37.  
  38.        'Diagonal de Sup-Der|Inf-Izq
  39.        ' 1 2  3  4
  40.        ' 5 6  7  8
  41.        ' 9 10 11 12
  42.        '13 14 15 16
  43.        'Print = 4 7 10 13
  44.  
  45.        Dim dia2 As String
  46.        For i As Integer = 0 To 3
  47.            For j As Integer = 0 To 3
  48.                If (i + j = 2 + 1) Then
  49.                    dia2 = dia2 & strMatriz(i, j) & " "
  50.                End If
  51.            Next
  52.        Next
  53.        MsgBox(dia2)
  54.    End Sub


Título: Re: Problema con imprimir diagonales en matriz bidimensional
Publicado por: greenselves en 19 Marzo 2010, 16:34 pm
ya lo he solucionado, gracias

      for(i=fila+1; i<8; i++ )
      {
         columna++;
         a[i,columna]='*';
      }



      for(i=columna-1; i>=0; i-- )
      {
         fila++;
         a[fila,i]='*';
      }



      for ( i=fila-1; i>=0; i-- )
      {   
         columna++;
         a[i,columna]='*';
      }





   for (i=fila-1; i>=0; i--)
      {   
         columna--;
         if ( columna>=0)
         {
            a[i,columna]='*';
         }
         else
         break;
      }