none
Subir un número en una matriz

    Pregunta

  • Hola 

    Tengo la siguiente matriz

    1 2 3 4 3 2 

    3 1 2 4 2 1 

    1 2 3 4 1 1

    2 1 2 1 2 2

    Necesito acomodarla y subir los 1 para que quede de la siguiente manera

    1 1 3 1 1 1 

    1  2 2 4 3 1 

    3 2 3 4 2 2

    2 2 2 4 2 2

    Alguien puede ayudarme para poder hacerlo en visual basic

    miércoles, 5 de abril de 2017 14:16

Respuestas

  • GianinaSolano,

    Debes buscar en las filas subyacentes -de la misma columna- la existencia de un número uno (1) para realizar la conmutación de valores:

    Dim Array = {{1, 2, 3, 4, 3, 2}, {3, 1, 2, 4, 2, 1},
    				{1, 2, 3, 4, 1, 1}, {2, 1, 2, 1, 2, 2}}
    
    For Fila = 0 To Array.GetUpperBound(0)
    	For Columna = 0 To Array.GetUpperBound(1)
    		For FilaSubyacente = Fila + 1 To Array.GetUpperBound(0)
    			If Array(FilaSubyacente, Columna) = 1 Then
    				Array(FilaSubyacente, Columna) = Array(Fila, Columna)
    				Array(Fila, Columna) = 1
    			End If
    		Next
    
    		Console.Write(Array(Fila, Columna).ToString & "")
    	Next
    	Console.WriteLine("")
    Next
    
    Console.ReadKey()

    - Resultado:



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 5 de abril de 2017 15:45