You are on page 1of 16

Captulo

3
Arrays
Al trmino de este captulo Usted podr utilizar
las estructuras de datos mediante Arrays, en este
captulo se tocaran los dos tipos de Arrays:
Array Unidimensional
Array Multidimensional

Estructuras de control

76

Programacin con Visual Basic

Captulo 3
Arrays
2.1.

Definicin
Un array o arreglo es una estructura de datos parecida a una
lista de elementos, los elementos del array se ubican
mediante un ndice. Existen arreglos unidimensionales y
multidimensionales.
Por ejemplo tenemos los siguientes arrays:

Puno Moquegua Tacna

77

Estructuras de control

2.2.

Array Unidimensional
Es una lista de valores a los cuales se accede mediante un
ndice.
Por ejemplo

Color

Blanco

Azul

Verde

Rojo

Color[0]

Color[1]

Color[2]

Color[3]

Se puede apreciar que el color Azul se encuentra ubicado en


el ndice 1 del array Color, el color verde en el ndice 2, etc.
Ejemplo: Creacin del array color

78

Programacin con Visual Basic

Cdigo

Private Sub Button1_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Dim colores(4) As String
colores(0) = "Azul"
colores(1) = "Blanco"
colores(2) = "Verde"
colores(3) = "Rojo"
For i = 3 To 0 Step -1
ListBox1.Items.Add(i)
ListBox2.Items.Add(colores(i))
Next
End Sub

Ejemplo

79

Estructuras de control

Codigo

Private Sub Button1_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Dim ciudad() As String = {"Moquegua", "Puno",
"Arequipa", "Tacna", "Cusco"}
For i = 0 To 4
ListBox1.Items.Add(i)
ListBox2.Items.Add(ciudad(i))
Next
End Sub

Ejercicios propuestos
1. Realice una aplicacin que rellene un array con los 100
primeros nmeros enteros y los muestre en pantalla en
orden ascendente.
2. Realice una aplicacin que rellene un array con los 100
primeros nmeros enteros y los muestre en pantalla en
orden descendente.
3. Realice una aplicacin que rellene un array con los
nmeros pares comprendidos entre 1 y 100 y los muestre
en pantalla en orden ascendente
4. Realice una aplicacin que rellene un array con los
nmeros impares comprendidos entre 1 y 100 y los
muestre en pantalla en orden ascendente
5. Realice una aplicacin que lea 10 nmeros por teclado,
los almacene en un array y muestre la suma esos
nmeros.

80

Programacin con Visual Basic

6. Realice una aplicacin que lea 10 nmeros por teclado, 5


para un array y 5 para otro array distinto. Mostrar los 10
nmeros en pantalla mediante un solo array
7. Realice un programa que lea 10 nmeros por teclado, los
almacene en un array y muestre la media.
8. Realice un programa que rellene un array con 20 nmeros
y luego busque un nmero concreto.
9. Escribir un programa que solicite cinco nmeros, los
almacene en un array y luego calcule la media aritmtica
de esos nmeros
10. Escribir un programa que tras asignar los nmeros, 23,
45, 68, 99, 10, 15 y 4 a un array, determine la posicin del
array en la que se encuentra el mximo valor
11. Escribir un programa en que tras asignar los nmeros, -2,
5, 8, -9, 10, 15 y -4 a un array calcule,
independientemente, la suma de los elementos positivos
y negativos.
12. Escribir un programa en que tras asignar los nmeros, 23,
45, 68, 99, 10, 15 y 4 a un array, determine las posiciones
del array en las que se encuentran el mximo y el mnimo
valor
13. Realice una aplicacin que lea 10 nmeros por teclado,
los almacene en un array y los ordene de forma
ascendente.
14. Realice un programa que lea 5 nmeros por teclado, los
copie a otro array multiplicados por 2 y muestre el
segundo array
15. Realice un programa que lea 5 nmeros por teclado, los
copie a otro array multiplicados por 2 y los muestre todos
ordenados usando un tercer array

81

Estructuras de control

16. Realice un programa que mediante un array almacene


nmeros tanto positivos como negativos y los muestre
ordenados
17. Realice un programa que lea una cadena y la muestre al
revs.
18. Realice un programa que lea una cadena y diga cuantas
vocales hay.
19. Realice un programa que lea una cadena y diga cuantas
maysculas hay (65-90)
20. Realice un programa que lea una cadena y la encripte
sumando 3 al cdigo ASCII de cada carcter. Mostrar por
pantalla

2.3.

Array Bidimensional
Son estructuras de datos que tienen la siguiente forma:

Lista
0

Para accede a sus elementos se debe tener en cuenta la


siguiente sintaxis:

82

Programacin con Visual Basic

Lista(fila,columna)
Ejemplo, con Textbos Multiline

Cdigo

Private Sub Button1_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Dim matriz(,) As Integer = {{1, 2, 3, 4}, {5, 6, 7, 8}}
For i = 0 To 1
For j = 0 To 3
TextBox1.Text = TextBox1.Text & matriz(i, j) & " "
Next
TextBox1.Text = TextBox1.Text & vbCrLf
Next

End Sub

83

Estructuras de control

Ejemplo

Cdigo

Private Sub Button1_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Dim matriz(,) As String = {{"Jose", "22", "Masculino"},
{"Alan", "28", "Masculino"}, {"Mirla", "24", "Femenino"}}
For i = 0 To 2
DataGridView1.Rows.Add()
For j = 0 To 2
DataGridView1.Rows(i).Cells(j).Value =
matriz(i, j)
Next
Next

End Sub

84

Programacin con Visual Basic

Ejemplo, Bsqueda lineal

Cdigo
Public Class Form1
Dim A(10) As Integer
Private Sub Form1_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
A(0) = 5
A(1) = 12
A(2) = 3
A(3) = 43
A(4) = 7
A(5) = 3
A(6) = 8
A(7) = 5
A(8) = 3
A(9) = 8
For i = 0 To 9
ListBox1.Items.Add("A(" & i & ") = " & A(i))
Next

85

Estructuras de control

End Sub
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim buscar As Integer
ListBox2.Items.Clear()
buscar = TextBox1.Text
For i = 0 To 9
If buscar = A(i) Then
ListBox2.Items.Add(A(i) & " Esta en
ubicacin : " & i)
End If
Next
End Sub
End Class

Ejemplo: Suma y resta de matrices

Codigo
Public Class Form2
Dim A(,) As Integer = {{3, 2, 4}, {5, 6, 2}, {2, 3, 2}}
Dim B(,) As Integer = {{4, 3, 2}, {4, 2, 5}, {3, 7, 4}}

86

Programacin con Visual Basic

Private Sub Form2_Load(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles MyBase.Load
For i = 0 To 2
DataGridView1.Rows.Add()
DataGridView2.Rows.Add()
DataGridView3.Rows.Add()
For j = 0 To 2
DataGridView1.Rows(i).Cells(j).Value = A(i, j)
DataGridView2.Rows(i).Cells(j).Value = B(i, j)
Next
Next
End Sub
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
For i = 0 To 2
For j = 0 To 2
DataGridView3.Rows(i).Cells(j).Value = A(i, j)
+ B(i, j)
'DataGridView3.Rows(i).Cells(j).Value =
DataGridView1.Rows(i).Cells(j).Value +
DataGridView2.Rows(i).Cells(j).Value
Next
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button2.Click
For i = 0 To 2
For j = 0 To 2
'DataGridView3.Rows(i).Cells(j).Value = A(i,
j) - B(i, j)
DataGridView3.Rows(i).Cells(j).Value =
DataGridView1.Rows(i).Cells(j).Value DataGridView2.Rows(i).Cells(j).Value
Next
Next
End Sub
End Class

Ejercicios propuestos

87

Estructuras de control

1. Realice un programa que muestre los primeros 100


nmeros de izquierda a derecha usando un array de dos
dimensiones.
2. Escriba un progema que muestre los primeros 100
nmeros de izquierda a derecha usando un array de dos
dimensiones, la ltima fila mostrar la suma de sus
respectivas columnas.
3. Realice un programa que rellene una matriz de 3x3 y
muestre su traspuesta (la traspuesta se consigue
intercambiando filas por columnas y viceversa).
4. Realice un programa que gestiona las notas de una clase
de 20 alumnos de los cuales sabemos el nombre y la nota.
El programa debe ser capaz de:
a. Buscar un alumno.
b. Modificar su nota.
c. Realizar la media de todas las notas.
d. Realizar la media de las notas menores de 5.
e. Mostrar el alumno que mejores notas ha sacado.
f. Mostrar el alumno que peores notas ha sacado.

Multiplicacin de matrices

88

Programacin con Visual Basic

89

Estructuras de control

El algoritmo en pseudocdigo sera:


1. Leer las variables de entrada m, p, n
2. Leer A y B
3.
Desde i=1 hasta m, con paso 1, hacer:

Desde j=1 hasta n, con paso 1, hacer:

Desde k=1 hasta p, con paso 1, hacer:

P(i, j) = p(i, j) + a (i, k) * b(k, j)

Fin bucle en k

Fin bucle en j

Fin bucle en i
4. Escribir la variable de salida P

90