16
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

Capítulo 03

Embed Size (px)

DESCRIPTION

Visual Basic

Citation preview

Page 1: Capítulo 03

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

Page 2: Capítulo 03

Estructuras de control

76

Page 3: Capítulo 03

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

Page 4: Capítulo 03

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

Page 5: Capítulo 03

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

Page 6: Capítulo 03

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.

Page 7: Capítulo 03

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

Page 8: Capítulo 03

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:

Page 9: Capítulo 03

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

Page 10: Capítulo 03

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

Page 11: Capítulo 03

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

Page 12: Capítulo 03

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}}

Page 13: Capítulo 03

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

Page 14: Capítulo 03

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

Page 15: Capítulo 03

Programación con Visual Basic

89

Page 16: Capítulo 03

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