Programación General > Visual Basic 6.0 e inferiores
Combinar Arrays
Guval:
Hola, Gracias por responder, voy a intentar explicarme mejor.
Tengo dos matrices, 1 con 5 elementos, y otra que es redimensionable,
cuyos elementos para efectos del programa variaran entre 2 y 24.
La idea es combinar las dos matrices, para dar salida a series de números
de seis elementos, que se van a almacenar en una tabla de access.
Ejemplo:
Matriz1, Contiene los siguientes numeros, 1,2,3,4 y5
Matriz1(0) = 1
Matriz1(1) = 2
Matriz1(2) = 3
Matriz1(3) = 4
Matriz1(4) = 5
(Los numeros correlativos son a manera de ejemplo, para mejor comprension, pero los elementos de la matriz pueden ser cualquier numero.)
Matriz2()( Es redimensionable, supongamos que tiene 4 elementos, 6,7,8,9)
Matriz2(0) = 6
Matriz2(1) = 7
Matriz2(2) = 8
Matriz2(3) = 9
Al ejecutar el programa se almacenan en la base de datos las siguientes series de seis elementos:
1 2 3 4 5 6 ' el ultimo numero de la serie es el primer elemento de Matriz2
1 2 3 4 5 7
1 2 3 4 5 8
1 2 3 4 5 9
1 2 3 4 6 7 'Aqui se comienzan a reemplazar dos elementos
1 2 3 4 6 8
1 2 3 4 6 9
1 2 3 4 7 8
1 2 3 4 7 9
1 2 3 5 6 7 ' Aqui se reemplazan tres elementos de la primera matriz
1 2 3 5 6 8
1 2 3 5 6 9
1 2 3 6 7 8
1 2 3 6 7 9
1 2 6 7 8 9 ' Aqui se reemplazan cuatro elementos de la primera matriz
La idea es que los elementos de la segunda matriz, primero completan las primeras series, pero luego van reemplazando a los elemntos de la segunda matriz para dar origen a todas las combinaciones posibles. De esta forma, en el caso que la segunda matriz tenga 24 elementos, la ultima serie posible seria:
24 25 26 27 28 29
Espero que me puedan ayudar.
Guval
Brroz:
Hola Guval.
Lo que necesitas es algo así:
Por ejemplo en un formulario con un textbox (Text1) con Multiline = True y un commandbutton (command1).
--- Código: Text --- Option ExplicitOption Base 0 Private iEstatica(5) As IntegerPrivate iDinamica() As Integer Private Sub Form_Load() LoadEstatica LoadDinamicaEnd Sub Private Sub LoadEstatica() Dim iIdx As Integer For iIdx = 0 To 4 iEstatica(iIdx) = iIdx + 1 Next iIdxEnd Sub Private Sub LoadDinamica() ReDim iDinamica(22) Dim iIdx As Integer For iIdx = 0 To 21 iDinamica(iIdx) = iIdx + 6 Next iIdxEnd Sub Private Sub Command1_Click() Text1.Text = "" Dim sEstatica As String, sDinamica As String Dim iBound As Integer, iCount As Integer Dim iIdx As Integer, iFrom As Integer, iIdx2 As Integer iBound = UBound(iDinamica) - 1 iCount = 4 Do Until iCount = 0 sEstatica = "" For iIdx = 0 To iCount sEstatica = sEstatica & iEstatica(iIdx) & " " Next iIdx For iIdx = 0 To 3 - iCount sEstatica = sEstatica & iDinamica(iIdx) & " " Next iIdx iFrom = 4 - iCount For iIdx = iFrom To iBound sDinamica = "" iIdx2 = iIdx Do sDinamica = sDinamica & iDinamica(iIdx2) & " " iIdx2 = iIdx2 + 1 Loop Until iIdx2 > 4 - iCount Text1.Text = Text1.Text & sEstatica & sDinamica & vbCrLf iFrom = iFrom + 1 Next iIdx iCount = iCount - 1 LoopEnd Sub
No te acostumbres a pedir y que te lo den todo hecho.
Tu problema me huele a ejercicio estudiantil... para la próxima intenta aportar algo de tu parte o por lo menos cuentanos lo que habías intentado y probado.
Adiós.
Navegación
[*] Página Anterior
Ir a la versión completa