Sie sind auf Seite 1von 5

SUMAR 2 ARRAYS

BIDIMENSIONALES VISUAL STUDIO ~ 1 ~


SUMA DE 2 ARRAYS
El objetivo de este ejemplo es cargar 2 arrays aleatoriamente con Random y despus mostrar la suma
de esos arrays en un nuevo array.
RANDOM
Clase Random: Nos permite generar nmeros aleatorios. Tiene la siguiente forma:
DIM RANDOM AS NEW RANDOM
DIM NUMERO AS INTEGER
NUMERO = RANDOM.NEXT(1,100)
MSGBOX(NUMERO)
NUMERO = RANDOM.NEXT(-50,50)
MSGBOX(NUMERO)

El formulario lo creo del siguiente modo:


SUMAR 2 ARRAYS
BIDIMENSIONALES VISUAL STUDIO ~ 2 ~
El cdigo quedara:
Public Class Form1
Dim primerArray(2, 3)
Dim segundoArray(2, 3)
Dim sumaArrays(2, 3)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
'Para crear nmeros aleatoriamente
Dim Random As New Random
Dim numero As Integer = 0

'Cargar el primer array con valores aleatorios
For i As Integer = 0 To primerArray.GetUpperBound(0)
For j As Integer = 0 To primerArray.GetUpperBound(1)
numero = Random.Next(1, 100)
primerArray(i, j) = numero
Next
Next
'Mostrar el primer array en la Textbox correspondiente
For i As Integer = 0 To primerArray.GetUpperBound(0)
For j As Integer = 0 To primerArray.GetUpperBound(1)
tbPrimerArray.Text += (primerArray(i, j)) & " "
Next
tbPrimerArray.Text &= ControlChars.CrLf
Next
'Cargar el segundo array con valores aleatorios
For i As Integer = 0 To segundoArray.GetUpperBound(0)
For j As Integer = 0 To segundoArray.GetUpperBound(1)
numero = Random.Next(1, 100)
segundoArray(i, j) = numero
Next
Next
'Mostrar el segundo array en el textbox correspondiente
For i As Integer = 0 To segundoArray.GetUpperBound(0)
For j As Integer = 0 To segundoArray.GetUpperBound(1)
tbSegundoArray.Text += (segundoArray(i, j)) & " "
Next
tbSegundoArray.Text &= ControlChars.CrLf
Next
'Cargar el array suma con la suma de los dos arrays anteriores
For i As Integer = 0 To sumaArrays.GetUpperBound(0)
For j As Integer = 0 To segundoArray.GetUpperBound(1)
sumaArrays(i, j) = primerArray(i, j) + segundoArray(i, j)
Next
Next
'mostrar el array suma
For i As Integer = 0 To segundoArray.GetUpperBound(0)
For j As Integer = 0 To segundoArray.GetUpperBound(1)
tbSumaArrays.Text += (sumaArrays(i, j)) & " "
Next
tbSumaArrays.Text &= ControlChars.CrLf
Next
End Sub
End Class
SUMAR 2 ARRAYS
BIDIMENSIONALES VISUAL STUDIO ~ 3 ~
MEJORA Aunque SOLO SE PUEDEN SUMAR 2 ARRAYS DE IGUAL TAMAO vamos a realizar esta suma haciendo que
en el array con la suma se muestre la suma de las posiciones que poseen cada uno de los arrays.
Public Class Form1
Dim primerArray(4, 6)
Dim segundoArray(1, 2)


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
'Para crear nmeros aleatoriamente
Dim Random As New Random
Dim numero As Integer = 0

'Cargar el primer array con valores aleatorios
For i As Integer = 0 To primerArray.GetUpperBound(0)
For j As Integer = 0 To primerArray.GetUpperBound(1)
numero = Random.Next(1, 100)
primerArray(i, j) = numero
Next
Next
'Mostrar el primer array en la Textbox correspondiente
For i As Integer = 0 To primerArray.GetUpperBound(0)
For j As Integer = 0 To primerArray.GetUpperBound(1)
tbPrimerArray.Text += (primerArray(i, j)) & " "
Next
tbPrimerArray.Text &= ControlChars.CrLf
Next
'Cargar el segundo array con valores aleatorios
For i As Integer = 0 To segundoArray.GetUpperBound(0)
For j As Integer = 0 To segundoArray.GetUpperBound(1)
numero = Random.Next(1, 100)
segundoArray(i, j) = numero
Next
Next
'Mostrar el segundo array en el textbox correspondiente
For i As Integer = 0 To segundoArray.GetUpperBound(0)
For j As Integer = 0 To segundoArray.GetUpperBound(1)
tbSegundoArray.Text += (segundoArray(i, j)) & " "
Next
tbSegundoArray.Text &= ControlChars.CrLf
Next

'Obtener el tamao que va a tener el array con la suma final
Dim columna As Integer
Dim fila As Integer
'Compruebo cual es el array que tiene ms filas y guardo el valor
If (primerArray.GetUpperBound(0) > segundoArray.GetUpperBound(0)) Then
fila = primerArray.GetUpperBound(0)
Else
fila = segundoArray.GetUpperBound(0)
End If
'Compruebo cual es el array que tiene ms columnas y guardo el valor
If (primerArray.GetUpperBound(1) > segundoArray.GetUpperBound(1)) Then
columna = primerArray.GetUpperBound(1)
Else
columna = segundoArray.GetUpperBound(1)
End If

'Creo 3 arrays del tamao final
Dim sumaArrays(fila, columna) As Integer
Dim copiaPrimerArray(fila, columna) As Integer
Dim copiaSegundoArray(fila, columna) As Integer
SUMAR 2 ARRAYS
BIDIMENSIONALES VISUAL STUDIO ~ 4 ~
'Copio el primerArray en un array que tiene el tamao del array final
'En donde no hay dato queda 0
For i As Integer = 0 To primerArray.GetUpperBound(0)
For j As Integer = 0 To primerArray.GetUpperBound(1)
copiaPrimerArray(i, j) = primerArray(i, j)
Next
Next
'Copio el segundoArray en un array que tiene el tamao del array final
'En donde no hay dato queda 0
For i As Integer = 0 To segundoArray.GetUpperBound(0)
For j As Integer = 0 To segundoArray.GetUpperBound(1)
copiaSegundoArray(i, j) = segundoArray(i, j)
Next
Next
'En el array final coloco la suma de los dos arrays copiados
For i As Integer = 0 To sumaArrays.GetUpperBound(0)
For j As Integer = 0 To sumaArrays.GetUpperBound(1)
sumaArrays(i, j) = copiaPrimerArray(i, j) + copiaSegundoArray(i, j)
Next
Next
'mostrar el array suma
For i As Integer = 0 To sumaArrays.GetUpperBound(0)
For j As Integer = 0 To sumaArrays.GetUpperBound(1)
tbSumaArrays.Text += (sumaArrays(i, j)) & " "
Next
tbSumaArrays.Text &= ControlChars.CrLf
Next
End Sub
End Class

MEJORA Pedir el tamao de los arrays iniciales al usuario
Public Class Form1
Dim fila As Integer
Dim columna As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
fila = Val(InputBox("Introduce el nmero de filas del array"))
columna = Val(InputBox("Introduce el nmero de columnas del array"))
Dim primerArray(fila, columna)
fila = Val(InputBox("Introduce el nmero de filas del array"))
columna = Val(InputBox("Introduce el nmero de columnas del array"))
Dim segundoArray(fila, columna)

'Para crear nmeros aleatoriamente
Dim Random As New Random
Dim numero As Integer = 0

'Cargar el primer array con valores aleatorios
For i As Integer = 0 To primerArray.GetUpperBound(0)
For j As Integer = 0 To primerArray.GetUpperBound(1)
numero = Random.Next(1, 100)
primerArray(i, j) = numero
Next
Next
'Mostrar el primer array en la Textbox correspondiente
For i As Integer = 0 To primerArray.GetUpperBound(0)
For j As Integer = 0 To primerArray.GetUpperBound(1)
tbPrimerArray.Text += (primerArray(i, j)) & " "
Next
tbPrimerArray.Text &= ControlChars.CrLf
Next
SUMAR 2 ARRAYS
BIDIMENSIONALES VISUAL STUDIO ~ 5 ~
'Cargar el segundo array con valores aleatorios
For i As Integer = 0 To segundoArray.GetUpperBound(0)
For j As Integer = 0 To segundoArray.GetUpperBound(1)
numero = Random.Next(1, 100)
segundoArray(i, j) = numero
Next
Next
'Mostrar el segundo array en el textbox correspondiente
For i As Integer = 0 To segundoArray.GetUpperBound(0)
For j As Integer = 0 To segundoArray.GetUpperBound(1)
tbSegundoArray.Text += (segundoArray(i, j)) & " "
Next
tbSegundoArray.Text &= ControlChars.CrLf
Next

'Obtener el tamao que va a tener el array con la suma final
'Compruebo cual es el array que tiene ms filas y guardo el valor
If (primerArray.GetUpperBound(0) > segundoArray.GetUpperBound(0)) Then
fila = primerArray.GetUpperBound(0)
Else
fila = segundoArray.GetUpperBound(0)
End If
'Compruebo cual es el array que tiene ms columnas y guardo el valor
If (primerArray.GetUpperBound(1) > segundoArray.GetUpperBound(1)) Then
columna = primerArray.GetUpperBound(1)
Else
columna = segundoArray.GetUpperBound(1)
End If

'Creo 3 arrays del tamao final
Dim sumaArrays(fila, columna) As Integer
Dim copiaPrimerArray(fila, columna) As Integer
Dim copiaSegundoArray(fila, columna) As Integer
'Copio el primerArray en un array que tiene el tamao del array final
'En donde no hay dato queda 0
For i As Integer = 0 To primerArray.GetUpperBound(0)
For j As Integer = 0 To primerArray.GetUpperBound(1)
copiaPrimerArray(i, j) = primerArray(i, j)
Next
Next
'Copio el segundoArray en un array que tiene el tamao del array final
'En donde no hay dato queda 0
For i As Integer = 0 To segundoArray.GetUpperBound(0)
For j As Integer = 0 To segundoArray.GetUpperBound(1)
copiaSegundoArray(i, j) = segundoArray(i, j)
Next
Next
'En el array final coloco la suma de los dos arrays copiados
For i As Integer = 0 To sumaArrays.GetUpperBound(0)
For j As Integer = 0 To sumaArrays.GetUpperBound(1)
sumaArrays(i, j) = copiaPrimerArray(i, j) + copiaSegundoArray(i, j)
Next
Next
'mostrar el array suma
For i As Integer = 0 To sumaArrays.GetUpperBound(0)
For j As Integer = 0 To sumaArrays.GetUpperBound(1)
tbSumaArrays.Text += (sumaArrays(i, j)) & " "
Next
tbSumaArrays.Text &= ControlChars.CrLf
Next
End Sub

End Class

Das könnte Ihnen auch gefallen