Upload
juan-nina-vizcarra
View
16
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Visual Basic
Citation preview
Capítulo 3
Arrays
Al término de este capítulo Usted podrá utilizar
las estructuras de datos mediante Arrays, en este
capítulo se tocaran los dos tipos de Arrays:
Array Unidimensional Array Multidimensional
Estructuras de control
76
Programación con Visual Basic
77
Capítulo 3
Arrays
2.1. Definición
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:
A 7 2 3 4
B Puno Moquegua Tacna
5 4 6 3
C 7 4 9 1
3 3 7 5
Estructuras de control
78
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: Creación del array color
Programación con Visual Basic
79
Código
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
Estructuras de control
80
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 aplicación que rellene un array con los 100
primeros números enteros y los muestre en pantalla en
orden ascendente.
2. Realice una aplicación que rellene un array con los 100
primeros números enteros y los muestre en pantalla en
orden descendente.
3. Realice una aplicación que rellene un array con los
números pares comprendidos entre 1 y 100 y los muestre
en pantalla en orden ascendente
4. Realice una aplicación que rellene un array con los
números impares comprendidos entre 1 y 100 y los
muestre en pantalla en orden ascendente
5. Realice una aplicación que lea 10 números por teclado,
los almacene en un array y muestre la suma esos
números.
Programación con Visual Basic
81
6. Realice una aplicación que lea 10 números por teclado, 5
para un array y 5 para otro array distinto. Mostrar los 10
números en pantalla mediante un solo array
7. Realice un programa que lea 10 números por teclado, los
almacene en un array y muestre la media.
8. Realice un programa que rellene un array con 20 números
y luego busque un número concreto.
9. Escribir un programa que solicite cinco números, los
almacene en un array y luego calcule la media aritmética
de esos números
10. Escribir un programa que tras asignar los números, 23,
45, 68, 99, 10, 15 y 4 a un array, determine la posición del
array en la que se encuentra el máximo valor
11. Escribir un programa en que tras asignar los números, -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 números, 23,
45, 68, 99, 10, 15 y 4 a un array, determine las posiciones
del array en las que se encuentran el máximo y el mínimo
valor
13. Realice una aplicación que lea 10 números por teclado,
los almacene en un array y los ordene de forma
ascendente.
14. Realice un programa que lea 5 números por teclado, los
copie a otro array multiplicados por 2 y muestre el
segundo array
15. Realice un programa que lea 5 números por teclado, los
copie a otro array multiplicados por 2 y los muestre todos
ordenados usando un tercer array
Estructuras de control
82
16. Realice un programa que mediante un array almacene
números tanto positivos como negativos y los muestre
ordenados
17. Realice un programa que lea una cadena y la muestre al
revés.
18. Realice un programa que lea una cadena y diga cuantas
vocales hay.
19. Realice un programa que lea una cadena y diga cuantas
mayúsculas hay (65-90)
20. Realice un programa que lea una cadena y la encripte
sumando 3 al código ASCII de cada carácter. Mostrar por
pantalla
2.3. Array Bidimensional
Son estructuras de datos que tienen la siguiente forma:
Lista
0 1 2 3
0 9 1 6 2
1 6 4 3 3
2 3 7 5 6
Para accede a sus elementos se debe tener en cuenta la
siguiente sintaxis:
Programación con Visual Basic
83
Lista(fila,columna)
Ejemplo, con Textbos Multiline
Código
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
Estructuras de control
84
Ejemplo
Código
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
Programación con Visual Basic
85
Ejemplo, Búsqueda lineal
Código
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
Estructuras de control
86
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 ubicación : " & 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}}
Programación con Visual Basic
87
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
Estructuras de control
88
1. Realice un programa que muestre los primeros 100
números de izquierda a derecha usando un array de dos
dimensiones.
2. Escriba un progema que muestre los primeros 100
números 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.
Multiplicación de matrices
Programación con Visual Basic
89
Estructuras de control
90
El algoritmo en pseudocódigo sería:
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