1. Guía Arreglos
Visual basic
1 – Arreglos unidimensionales (vectores)
Los Arreglos se utilizan para almacenar un conjunto de datos, que sean del mismo tipo
y todas estas bajo un mismo nombre.
Ejemplo, nombre de personas, edades.
1.1 - Declaración de los arreglos
Para crear un arreglo se debe en primer lugar declararlo como cualquier otra
variable, la única diferencia es que debemos indicar la cantidad de elementos que
contendrá el arreglo, colocando el número de índice entre paréntesis.
a) Forma 1
Dim Nombre_Areglo(tamaño) as tipo_de_dato_que_guarda
Donde tamaño es la cantidad de celdas que requiere
Ejemplo: dim nom(10) as
Declara un arreglo de 11 posiciones partiendo de la posición 0.
b) Forma 2
Dim Nombre_arreglo (1 to num) as tipo_dato_que_guarda
Donde num es un número entero
Ejemplo1:
Ejemplo: dim nom(1 to 10) as string
Declara un arreglo de 10 posiciones partiendo de la posición 1.
1.2 - Acceder a los datos de un arreglo
Para acceder a los datos de un arreglo o vector, debemos hacerlo mediante el índice o
número del elemento del mismo. Por ejemplo:
Dim alumnos(1 To 4) As String
alumnos(1) = "juan"
alumnos(2) = "maria"
alumnos(3) = "ana"
alumnos(4) = "ignacio"
1.- Primero se declara el arreglo llamado alumnos, de tipo string y que contendrá 4
elementos.
2. 2.- Luego le asignamos un valor de cadena como a cualquier otra variable de tipo
string, pero con la diferencia que para referirnos al elemento utilizamos el n° de índice
del mismo.
2.1 – Declaración de una matriz
Dim Nombre_matriz (Nfila , Mcolumna) tipo_de_dato_
Dim Nombre_matriz (1 to Nfila , 1 to Mcolumna) tipo_de_dato_
Donde Nfila es la cantidad de fila y Mcolumna es la cantidad de columnas
Ejemplo:
Declarar la matriz de orden 6 x 8
Dim personas (1 to 6, 1 to 8) as string
Dim personas ( 6, 8) as string
2.2 - Acceder a los datos de un arreglo
Si luego quisiera acceder a los datos de la misma basta con referirnos a los subíndices
Por ejemplo:
personas (1, 1) = "Natalia"
personas (2, 1) = "pedro"
personas (1, 7) = "valeria"
personas (1, 8) = "josé"
personas (2, 2) = "carolina"
personas (4, 1) = "raquel"
personas (6, 2) = "eustaquio"
personas (6, 5) = "maria"
personas (6, 8) = "mariana"
El total de índices posibles para almacenar datos o valores en el ejemplo anterior es de
48 datos, ya que si multiplicamos 6 x 8 nos da como total 48 valores posibles para
utilizar en la matriz bidimensional.
3. Proyecto1
1.-Este proyecto se declara un arreglo de 3 posiciones ( 0, 1, 2)
2.- En el cual van a ser asignados en cada posición los nombre de 3 países.
3.- Usando Ucase (string) se convertirán a mayúscula
4.- Se muestra el contenido de cada posición usando un MsgBox(). Para simplificar
la acción.
Diseñe el siguiente formulario y copie en el command1 el siguiente texto
General
Dim paises (2) As String, I As Integer
Private Sub Command1_Click()
‘ asignación de los nombres en cada posición
paises(0) = "Argentina"
paises(1) = "Perú"
paises(2) = "Brasil"
End Sub
Private Sub Command2_Click()
‘ convertir a mayúscula
For I = 0 To 2
paises(I) = UCase(paises(I))
Next
‘ mostrar arreglo
For I = 0 To 2
MsgBox "nombre del pais : " & paises(I) ' permite visualizar en pantalla
Next I
End Sub
Observaciones:
* & permite unir o concatenar expresiones.
* LCase(string) convierte a minúscula el string o cadena
* Ucase(string)
4. PROYECTO Nº2
Ingresar los nombres de 5 personas en un arreglo y luego muéstrelo.
Para el ingreso debe usar un Inputbox() y para mostrar debe usar un MsgBox()
Use un botón para cada efecto.
Solución
Dim nombre(4) As String, i As Integer
Private Sub Command1_Click()
' permite leer los nombres en cada posición
For i = 0 To 4
nombre(i) = InputBox("ingrese nombre ", "Nombre")
Next
End Sub
Private Sub Command2_Click()
' convertir a mayúscula
For i = 0 To 4
nombre(i) = UCase(nombre(i))
Next
' mostrar
For i = 0 To 4 ' muestra usando un MsgBox
MsgBox "nombre ingresado : " & nombre(i) ' permite visualizar en pantalla
PROYECTO Nº3
Next i
PROYECTO Nº3
Ingresar los nombres de N personas en un arreglo con un tope máximo de 100 datos y
luego muéstrelo.
Para el ingreso debe usar un Inputbox() y para mostrar debe usar un MsgBox()
Use un botón para cada efecto.
5. PROYECTO Nº4
Ingresar los nombres de N personas en un arreglo y la edad de ellas en otro arreglo.
a. Muestre los datos
b. Muestre el promedio de edad del grupo
c. Muestre el nombre de la persona de mayor edad.
d. Ordene en forma ascendente por el nombre y muestre ordenado los datos
PROYECTO Nº5
Ingresar los nombres edad y sexo de N personas en arreglos paralelos. Usa textbox
para su ingreso y un listbox para mostrar.
Se pide mostrar:
a) El promedio de edad del grupo
b) El promedio de edad de los hombres
c) El nombre de la persona mayor
d) El nombre de la mujer mayor
e) Muestra todos los datos ordenados en forma ascendente por el nombre
f) Ingresa un nombre y determina si hay alguna persona que tenga ese
nombre.
6. Posible solución
Dim NOM(2) As String, ED(2) As Integer, SEX(2) As String, X As Integer
Private Sub CMD1_Click() ' LLENAR LOS ARREGLOS
t4.Text = X
NOM(X) = T1.Text
ED(X) = Val(T2.Text)
SEX(X) = T3.Text
X=X+1
T1.Text = ""
T2.Text = ""
T3.Text = ""
T1.SetFocus ‘ posiciona cursor en t1.text
If X > 2 Then
L1.Visible = True
CMD2.Visible = True
t4.Text = "TERMINO"
End If
End Sub
Private Sub CMD2_Click() ' MOSTRAR LOS ARREGLOS
L1.AddItem "NOMBRE" & " " & "EDAD" & " " & "SEXO"
For p = 0 To 2
L1.AddItem NOM(p) & " " & ED(p) & " " & SEX(p)
Next
End Sub
PROYECTO Nº5
Ingresar número a una matriz de orden 3x3. Use textbox para el ingreso
7. Se pide:
a. Muestre los datos
b. Muestre la suma de todos los datos
c. Muestre el mayor de todos los números
d. Muestre el menor de todos los números
e. Cuantos números hay entre 2 y 15
f. Cuanto suma cada fila
g. Cuanto suma cada columna
h. El mayor de cada fila
i. El menor de cada columna
j. Suma de la diagonal principal
Posible Solución
Dim mat(1 To 3, 1 To 3) As Integer, x As Integer ‘ acepta los valores
Private Sub cmd1_Click()
mat(1, 1) = Val(t1.Text)
mat(1, 2) = Val(t2.Text)
mat(1, 3) = Val(t3.Text)
mat(2, 1) = Val(t4.Text)
mat(2, 2) = Val(t5.Text)
mat(2, 3) = Val(t6.Text)
8. mat(3, 1) = Val(t7.Text)
mat(3, 2) = Val(t8.Text)
mat(3, 3) = Val(t9.Text)
End Sub
Private Sub cmd2_Click() ‘limpiar
t1.Text = ""
t2.Text = ""
t3.Text = ""
t4.Text = ""
t5.Text = ""
t6.Text = ""
t7.Text = ""
t8.Text = ""
t9.Text = ""
t1.SetFocus
End Sub
Private Sub cmd3_Click() ‘ muestra en el listbox
For x = 1 To 3
l1.AddItem mat(x, 1) & " " & mat(x, 2) & " " & mat(x, 3)
Next
End Sub
PROYECTO Nº6
Modifique el proyecto 5 de tal forma que use otra forma de llenar la matriz