Programación General > Visual Basic 6.0 e inferiores

 Ordenar una matriz

(1/2) > >>

Programming C++:
Me podrian ayudar como ordenar esta matriz  ya he probado varios codigo y no me ordena. Los numero deben quedar de menor a mayor


--- Código: Text ---Private Sub Form_Load()MSFlexGrid1.TextMatrix(0, 0) = 5MSFlexGrid1.TextMatrix(0, 1) = 8MSFlexGrid1.TextMatrix(0, 2) = 4MSFlexGrid1.TextMatrix(0, 3) = 13MSFlexGrid1.TextMatrix(1, 0) = 21MSFlexGrid1.TextMatrix(1, 1) = 53MSFlexGrid1.TextMatrix(1, 2) = 90MSFlexGrid1.TextMatrix(1, 3) = 9MSFlexGrid1.TextMatrix(2, 0) = 2MSFlexGrid1.TextMatrix(2, 1) = 1MSFlexGrid1.TextMatrix(2, 2) = 0MSFlexGrid1.TextMatrix(2, 3) = 57MSFlexGrid1.TextMatrix(3, 0) = 56MSFlexGrid1.TextMatrix(3, 1) = 7MSFlexGrid1.TextMatrix(3, 2) = 20MSFlexGrid1.TextMatrix(3, 3) = 18MSFlexGrid1.TextMatrix(4, 0) = 10MSFlexGrid1.TextMatrix(4, 1) = 15MSFlexGrid1.TextMatrix(4, 2) = 27MSFlexGrid1.TextMatrix(4, 3) = 34 MSFlexGrid2.TextMatrix(0, 0) = 8MSFlexGrid2.TextMatrix(1, 0) = 6MSFlexGrid2.TextMatrix(2, 0) = 20MSFlexGrid2.TextMatrix(3, 0) = 11MSFlexGrid2.TextMatrix(4, 0) = 5 End Sub 

Programming C++:
nadie ayudaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  :bad:

droezva:
Fijate que he estado viendo el problema nada mas que no entiendo como deseas ordenar la matriz, si deseas que cada columna quede ordenada o cada fila o que se ordenen los numeros segun lo muestras, si me explicas un poco mas te prodría ayudar!!

Saludos!!

Programming C++:
un ejemplo

la bidimensional debe quedar :
1    2     3     4    5
6    7     8     9    10
11  12   13   14   15
16  17   18   19   20

la unidmesional :
20
10
5
1
0

todo esto con un boton ordenar que al dar click se ordene las 2 matrices

droezva:
Hola, pues aqui esta mi ayuda!! espero y te sirva y sea lo que necesitabas.

Cualquier duda o comentario me comentas.


--- Código: Visual Basic --- 'Funcion para saber hacia donde se ordenaran los elementos de los vectoresFunction CondicionDireccion(v1 As Integer, v2 As Integer, D As String) As BooleanDim R As Boolean If "ASC" = UCase(D) Then    If v1 > v2 Then        R = True    Else        R = False    End IfElseIf "DES" = UCase(D) Then    If v1 < v2 Then        R = True    Else        R = False    End IfEnd IfCondicionDireccion = REnd Function  'los parametros son'M as MSFlexGrid el componente donde se encuentra los datos'FI as Integer es el valor de la fila donde inician los datos'FF as Integer es el valor de la fila donde finalizan los datos'CI as Integer es el valor de la columna donde inician los datos'CI as Integer es el valor de la columna donde finaliza los datos'Direccion as String es el valor que indica la direccion de Ordenamiento ASC o DESSub OrdenarMatrix(M As MSFlexGrid, FI As Integer, FF As Integer, CI As Integer, CF As Integer, Direccion As String)Dim vector() As IntegerDim longVector As IntegerlongVector = ((FF - FI + 1) * (CF - CI + 1))ReDim vector(longVector - 1) As IntegerDim index As IntegerDim temp As Integer 'Los datos de la matriz son ingresados a un vector mediante'el recorrido fila columnaindex = 0For i = FI To FF    For j = CI To CF        vector(index) = M.TextMatrix(i, j)        index = index + 1    Next jNext i 'El vector es ordenado por medio del Método de la BurbujaFor i = 0 To longVector - 2    For j = i + 1 To longVector - 1        If CondicionDireccion(vector(i), vector(j), Direccion) = True Then            temp = vector(i)            vector(i) = vector(j)            vector(j) = temp        End If    Next jNext i 'El vector ya ordenado es vaciado a la matrixindex = 0For i = FI To FF    For j = CI To CF        M.TextMatrix(i, j) = vector(index)        index = index + 1    Next jNext iEnd Sub Private Sub btnOrdenar_Click()OrdenarMatrix MSFlexGrid1, 0, 4, 0, 3, "ASC"OrdenarMatrix MSFlexGrid2, 0, 4, 0, 0, "DES"End Sub Private Sub Form_Load() MSFlexGrid1.TextMatrix(0, 0) = 5 MSFlexGrid1.TextMatrix(0, 1) = 8 MSFlexGrid1.TextMatrix(0, 2) = 4 MSFlexGrid1.TextMatrix(0, 3) = 13 MSFlexGrid1.TextMatrix(1, 0) = 21 MSFlexGrid1.TextMatrix(1, 1) = 53 MSFlexGrid1.TextMatrix(1, 2) = 90 MSFlexGrid1.TextMatrix(1, 3) = 9 MSFlexGrid1.TextMatrix(2, 0) = 2 MSFlexGrid1.TextMatrix(2, 1) = 1 MSFlexGrid1.TextMatrix(2, 2) = 0 MSFlexGrid1.TextMatrix(2, 3) = 57 MSFlexGrid1.TextMatrix(3, 0) = 56 MSFlexGrid1.TextMatrix(3, 1) = 7 MSFlexGrid1.TextMatrix(3, 2) = 20 MSFlexGrid1.TextMatrix(3, 3) = 18 MSFlexGrid1.TextMatrix(4, 0) = 10 MSFlexGrid1.TextMatrix(4, 1) = 15 MSFlexGrid1.TextMatrix(4, 2) = 27 MSFlexGrid1.TextMatrix(4, 3) = 34  MSFlexGrid2.TextMatrix(0, 0) = 8 MSFlexGrid2.TextMatrix(1, 0) = 6 MSFlexGrid2.TextMatrix(2, 0) = 20 MSFlexGrid2.TextMatrix(3, 0) = 11 MSFlexGrid2.TextMatrix(4, 0) = 5End Sub   
Nos vemos Exito.  :)

Ahi te adjunto el proyecto!!

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa