Profesor Nelson O.
Cruz, 2023
ESTRUCTURAS DE DATOS
MATRICES
Una matriz es una estructura homogénea, compuesta por varios elementos,
todos del mismo tipo y almacenados consecutivamente en memoria. A cada
elemento se puede acceder directamente por el nombre de la matriz seguido
de uno o más subíndices encerrados entre paréntesis.
En general, la representación de las matrices se hace mediante variables
suscritas o subíndice y pueden tener una o varias dimensiones(subíndices).
A las matrices de una dimensión se les llama también vector o lista y a las
de dos dimensiones, o más tabla o matriz
DIMENSIONES
• Listas (Vectores)
• Arreglos Multidimensionales
Así mismo una matriz de dos dimensiones se representa mediante una
variable con dos subíndices (filas, columnas); una de tres dimensiones
se representa mediante una variable con tres subíndices, etc…
1
Profesor Nelson O. Cruz, 2023
DECLARACIÓN DE UNA MATRIZ
La declaración de una matriz se hace de la siguiente forma:
Dim nombre() As tipo
Donde tipo indica el tipo de los elementos de la matriz, y nombre es un
identificador que nombra a la matriz.
Por ejemplo:
Dim m() as Integer
Dim temperatura() As Single
LAS MATRICES SON DE DOS TIPOS:
– Estáticas: tienen un número fijo de elementos que queda
determinado desde la declaración de la estructura en el comienzo
del programa.
– Dinámicos: tienen un número de elementos que varía a lo largo
de la ejecución del programa
MATRICES ESTATICAS
• Dim nombre_del_arreglo (tamaño) [As Tipo]
Por ejemplo:
– Dim DiasSemana(10) As String ‘//11 posiciones válida
– Dim Meses(11,1) As String ‘//24 posiciones válidas
DiasSemana(0) =“Lunes”
DiasSemana(1)=“Martes”
…..
2
Profesor Nelson O. Cruz, 2023
DiasSemana(6)=“Domingo”
‘ cargando la Primera Dimensión
Meses(0,0)=“Enero”
Meses(1,0)=“Febrero”
….
Meses(11,0)=“Diciembre”
`cargando la Segunda Dimensión
Meses(0,1)=31
Meses(1,1)=28
….
Meses(11,1)=31
MATRIZ DINÁMICAS
• Dim nombre_del_arreglo () [As Tipo]
Por ejemplo:
Dim libros() As String
Para cambiar el tamaño de este arreglo use el comando 'ReDim' y
especifique el número de elementos:
Por ejemplo: ReDim libros(99)
ReDim Preserve libros(99)
OBSERVACION: Para conservar los datos actuales en el Arrays se utiliza
la palabra Preserve
3
Profesor Nelson O. Cruz, 2023
Ejemplo 2: Dim Cursos( , ) As String
……
Redim Cursos(2,Incluidos)
…..
Redim Preserve Cursos(2,Incluidos)
Un elemento es un valor de Array, al que se puede acceder haciendo uso
del índice o índices según las dimensiones. Por ejemplo, para acceder al
elemento de la segunda fila y la tercera columna del arrays bidimensional
con nombre Cursos se debe escribir Cursos(1,2), cabe adelantar que en
Visual Basic .Net el valor inicial de cada dimensión es CERO.
Ejemplo 1: Escribir un programa que lea la nota media obtenida por cada
alumno de un determinado curso, lo almacene en una matriz y dé como
resultado:
1. Un listado de Notas
2. La nota media del curso
3. El tanto por ciento de aprobados
4. El tanto por ciento de desaprobados
4
Profesor Nelson O. Cruz, 2023
Public Class frmNotas
Dim vector() As Integer
Dim x, k, acumulador, contAprobados, contdesaprobados As Integer
Dim media As Double
Private Sub btnCargar_Click(sender As Object, e As EventArgs) Handles [Link]
If IsNumeric([Link]) Then
x = [Link]
ReDim vector(x-1)
For i = 0 To x - 1
k = InputBox("Introduce la nota del estudiante N° " & i + 1)
vector(i) = k
Next
Else
[Link]("Introduce un valor numérico entero")
[Link] = Space(0)
[Link]()
End If
End Sub
Private Sub btnMostrar_Click(sender As Object, e As EventArgs) Handles
[Link]
For i = 0 To x - 1
[Link](vector(i))
Next
End Sub
Private Sub btnSalir_Click(sender As Object, e As EventArgs) Handles [Link]
Close()
End Sub
Private Sub btnresultados_Click(sender As Object, e As EventArgs) Handles
[Link]
acumulador = 0
contAprobados = 0
contdesaprobados = 0
For i = 0 To x - 1
acumulador = acumulador + (vector(i))
Next
media = acumulador / x
[Link] = media
For i = 0 To x - 1
If (vector(i) >= 71) Then
contAprobados = contAprobados + 1
Else
contdesaprobados = contdesaprobados + 1
End If
Next
[Link] = contAprobados
[Link] = contdesaprobados
End Sub
End Class
5
Profesor Nelson O. Cruz, 2023
Ejemplo 2: Desarrolla la siguiente aplicación:
Otros Ejemplos:
6
Profesor Nelson O. Cruz, 2023
MATRICES MULTIDIMENCIONALES
La definición de una matriz de varias dimensiones puede hacerse de la
siguiente manera:
Dim nombre(Expr-1, Expr-2,…) As tipo
Por ejemplo:
Dim m(1,2) As Integer
Ejemplo 1:
7
Profesor Nelson O. Cruz, 2023
Public Class Form1
Dim Vendedores As String() = {"Vendedor 1", "Vendedor 2", "Vendedor 3", "Vendedor 4",
"Vendedor 5"}
Dim Matriz(4, 2) As Double
Dim f, c, acum As Integer
Dim tmp, ventasTotales As Integer
Dim vendedorMas As Integer 'Vendedor que màs vendiò
Dim modeloMas As Integer 'Modelo màs vendido
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles [Link]
[Link] = 6 'Establecemos la cantidad de filas a utilizar
For f = 0 To 4
DGVVentas(0, f).Value = Vendedores(f)
Next
DGVVentas(0, 5).Value = "TOTAL"
End Sub
Private Sub CargarVentas_Click(sender As Object, e As EventArgs) Handles
[Link]
Dim venta As String
For f = 0 To 4
For c = 1 To 3
venta = InputBox("Ventas del " & DGVVentas(c, f).[Link], "" &
Vendedores(f))
Matriz(f, c - 1) = venta
DGVVentas(c, f).Value = Matriz(f, c - 1)
'asignamos el valor introducido a una casilla de la tabla
Next
Next
End Sub
Private Sub BtnResultados_Click(sender As Object, e As EventArgs) Handles
[Link]
ventasTotales = 0
acum = 0
tmp = 0
8
Profesor Nelson O. Cruz, 2023
Try
For f = 0 To 4
For c = 0 To 2
tmp = Matriz(f, c) + tmp
Next
DGVVentas(4, f).Value = tmp
If tmp > acum Then
acum = tmp
vendedorMas = f
End If
tmp = 0
Next
'Imprimimos el vendedor con màs ventas
[Link] = Vendedores(vendedorMas)
acum = 0
tmp = 0
For c = 0 To 2
For f = 0 To 4
tmp = Matriz(f, c) + tmp
Next
DGVVentas(c + 1, 5).Value = tmp
ventasTotales = tmp + ventasTotales
If tmp > acum Then
acum = tmp
modeloMas = c + 1
End If
tmp = 0
Next
'Imprimimos el total de ventas
DGVVentas(4, 5).Value = ventasTotales
'Imprimimos el modelo màs vendido
[Link] = DGVVentas(modeloMas, 0).[Link]
Catch ex As Exception
[Link]("Error en la entrada de datos, vuelve a intentarlo")
End Try
End Sub
End Class
9
Profesor Nelson O. Cruz, 2023
Ejemplo 2:
El menú de un restaurante rápido se muestra a continuación:
MENÚ PRECIO (S/.) Se desea construir una aplicación que
calcule las ventas totales al final del día, así
Hamburguesa 2.50
como los impuestos a pagar (7 por 100).
Cerveza 4.00
Gaseosa 3.00
Ensalada 1.50
Salchichas 2.00
Refresco 1.00
Sopa 1.50
Postre 1.50
La interfaz de entrada y salida deberá ser similar a la figura mostrada a
continuación:
10