guía nº 8 arreglos

8
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 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. Dim Nombre_arreglo (1 to num) as tipo_dato_que_guarda Donde num es un número entero

Upload: christian-yanez-villouta

Post on 20-Jun-2015

612 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Guía nº 8 arreglos

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

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.

Dim Nombre_arreglo (1 to num) as tipo_dato_que_guarda Donde num es un número entero

Page 2: Guía nº 8 arreglos

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

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.

Dim Nombre_matriz (1 to Nfila , 1 to Mcolumna) tipo_de_dato_

Dim Nombre_matriz (Nfila , Mcolumna) tipo_de_dato_

Page 3: Guía nº 8 arreglos

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)

Page 4: Guía nº 8 arreglos

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.

PROYECTO Nº3

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.

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 Next i

Page 5: Guía nº 8 arreglos

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.

Page 6: Guía nº 8 arreglos

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

Page 7: Guía nº 8 arreglos

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)

Page 8: Guía nº 8 arreglos

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