You are on page 1of 26

MATRICES

Arrays(Arreglos)

• ¿Que es un Array?: En
programación, una matriz o vector (llamados en inglés arrays) es
una zona de almacenamiento continuo, que contiene una serie de
elementos del mismo tipo, los elementos de la matriz. Desde el
punto de vista lógico una matriz se puede ver como un conjunto
de elementos ordenados en fila (o filas y columnas si tuviera dos
dimensiones).
Como se declara un vector en Visual Basic
Formato

Dim Nombre Del Vector o Matriz(Primer Valor To Ultimo Valor) As Tipo De Dato

Ejemplo:

Dim Fila(1 To 5) As Integer


Donde: Nombre Del Vector o Matriz: Fila
Primer Valor: 1
Ultimo Valor: 5
Tipo De Dato: Integer
ARRAYS DINÁMICOS Y ARRAYS ESTÁTICOS.
INSTRUCCIÓN REDIMENSIONAR (REDIM Y REDIM )

• En el apartado correspondiente a declaración de variables ya hemos


tratado la forma de declarar arrays estáticos unidimensionales y
multidimensionales a través de la instrucción Dim. Usaremos esta
misma instrucción para declarar arrays dinámicos. Recordemos que
habíamos definido array dinámico como aquel que es declarado con
un número de elementos componentes indefinido. La sintaxis a
emplear será:
REM Curso Visual Basic aprenderaprogramar.com
Option Explicit On
Public Class Form1
Dim A() As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
ReDim A(2)
A(1) = 3
Label1.Text = "El valor de A(1) es " & A(1)
End Sub
End Class
Ejercicio 1: Escribir un programa en Visual Basic que lea N números, calcule la media aritmética de los mismos y muestre los
números leídos que son mayores que la media calculada.
Ejercicio 1: Escribir un programa en Visual Basic que lea N estudiantes y su nota, los agregue en un listbox ordenados a partir del
MAYOR puntaje
Ejercicio 1: Escribir un programa en Visual Basic que lea N estudiantes y su nota, los agregue en un listbox ordenados a partir del
MAYOR puntaje
Dimensionando una matriz
 Toda matriz debe dimensionarse antes de usarse, estableciendo la
cantidad de filas y columnas máximas que se requieren.
 Las matrices son de naturaleza estática y dinámica, lo cual influye
en la especificación del tamaño de la matriz a la hora de usarse.

 Ejemplo: Dim A(3, 5) as Single


Matriz
estática  Máximo de filas= 3
 Máximo de columnas= 5.
 Cantidad de datos = 15
Matriz Dinámica

 Redim es la instrucción que especifica la


cantidad de elementos que este tipo de
matrices contiene.
 Ejemplo: Redim A (10, 10).
 En las matrices los primeros elementos se les
asigna el valor de 0.
Redim en Matriz Dinámica
… …
Dim matriz() as single For J = 1 To 1
For I = 1 To 1 n = InputBox("¿Cuántas columnas son?")
m = InputBox("¿Cuantas filas son?") If n <= 0 Then
If m <= 0 Then MsgBox ("No existen columnas negativas")
MsgBox ("No existen filas negativas") J=J-1
I=I-1 End If
End If Next J

Next I ReDim matriz(m, n)


 Se necesita de 2 ciclos for anidados.
 El for exterior corresponde a las filas (se mueve más lento).
 El for interior corresponde a las columnas (se mueve más
rápido).

For I= 1 to fil

For J= 1 to col

A(I,J)= val(Input(“Datos de la fila Nº : ” & “A(“& Str(I) & “,” &Str(J)& “) = ”))

Next

Next
Cargando Matriz Dinámica
Private Sub cmdLLenarVector_Click()
For i = 1 To fil
For j = 1 To col
mat(i, j) = Val(InputBox("Favor introduce el elemento ( " & Str(i) & "," & Str(J) & ")" & vbCrLf))

MsgBox mat(i, j)
Next
Next
End Sub
DataGri
dView
Taller N1
Paso uno crear Variables Globales
Public Class Form1
Dim fila1 As Integer, columna1 As Integer
Dim fila2 As Integer, columna2 As Integer
Dim fila3 As Integer, columna3 As Integer
Dim f1 As Object, f2 As Object, c1 As Object, c2 As Object
Dim matriz1(,) As Single
Dim matriz2(,) As Single
Dim matriz3(,) As Single
Dim c_num As Object
Dim c_num1 As Object
'DIMENCIONANDO LA MATRIZ 1'
MsgBox("Vamos a dimenconar la matriz 1", vbInformation)
For i = 1 To 1
f1 = InputBox("FILAS para la primera matriz", "Matriz 1")
If IsNumeric(f1) Then
If f1 <= 0 Then
MsgBox("Valor incorrecto. Ingrese otro número", vbCritical)
i=i-1
Else
fila1 = f1
dgvmatriz1.RowCount = fila1
dgvmatriz1.AutoResizeRows()
End If
Else
MsgBox("Ingrese un valor numerico", vbCritical, "Error")
End If
Next
'Llena Matriz1
ReDim matriz1(fila1 - 1, columna1 - 1)
MsgBox("Favor ingrese los valores de la matriz 1", vbInformation)
For j = 0 To columna1 - 1
For i = 0 To fila1 - 1
c_num1 = InputBox("Introduce el elemento (" & Str(i) & "," & Str(j) & ")" & vbCrLf, "Llena la matriz1")
If IsNumeric(c_num1) Then
matriz1(i, j) = c_num1
dgvmatriz1(j, i).Value = matriz1(i, j)
Else
i=i-1
MsgBox(“Error favor ingresar un numero valido", vbCritical, "Error")
End If
Next
Next
OPERACION DE SUMA O RESTA
If columna1 = columna2 And fila1 = fila2 Then
columna3 = columna1
fila3 = fila1
ReDim matriz3(fila3 - 1, columna3 - 1)
dgvmatriz3.RowCount = fila3
dgvmatriz3.ColumnCount = columna3
For i = 0 To fila3 - 1
For j = 0 To columna3 - 1
matriz3(i, j) = matriz1(i, j) + matriz2(i, j)
dgvmatriz3(j, i).Value = matriz3(i, j)
Next
Next
dgvmatriz3.AutoResizeColumns()
dgvmatriz3.AutoResizeRows()
Label1.Text = "Respuesta de la Suma"
Else
MsgBox("Las Dimensiones de las matrices no son iguales, no se puede realizar la suma")
Label1.Text = “La suma no es posible"
End If
Operacion de Multiplicacion
If columna1 = fila2 Then
columna3 = columna2
fila3 = fila1
ReDim matriz3(fila3 - 1, columna3 - 1)
dgvmatriz3.RowCount = fila1
dgvmatriz3.ColumnCount = columna2

For i = 0 To fila1 - 1
For j = 0 To columna2 - 1
For k = 0 To fila2 - 1
matriz3(i, j) = matriz3(i, j) + (matriz1(i, k) * matriz2(k, j))
dgvmatriz3(j, i).Value = matriz3(i, j)
Next
Next
Next
dgvmatriz3.AutoResizeColumns()
dgvmatriz3.AutoResizeRows()
Label1.Text = "Respuesta de la Multiplicaión "
Else
MsgBox("La multiplicación no se puede realizar por las dimenciones de las matrices")
Label1.Text = "Multiplicar no es posible"
End If
Sección de Talleres con Arreglos

1- Diseñe un programa que obtenga, la


calificación mayor y la calificación menor, de un
grupo de 10 estudiantes, además de los
nombres de dichos alumnos.
2 Implementar un programa que permita leer un vector1 de 5
elementos con números enteros. El programa deberá copiar el
contenido de dicho vector1 a un vector2 de forma invertida. Al final
deberá imprimir el vector2.
3- Crear un programa que permita registrar 5 números enteros en
un arreglo1 y 5 números enteros en un arreglo2. Crear Un
Procedimiento en el programa que permita obtener la suma de los 2
arreglos en otro arreglo llamado suma.
Talleres con Matrices

• 4- Escriba en programa que permita solicitar el


nombre de cinco estudiantes y cada estudiante
tiene cinco notas para una asignatura: como salida
debe presentar el nombre del estudiante y el
promedio.
2 Crear un programa que permita registrar: código, nombre, nota1, nota2 y nota3 de máximo 5
estudiantes mediante Matrices. Una vez registrados los datos se deben crear un procedimiento
para imprimir la tabla presentada en la guía. Debe existir una boton que al invocarla permita
calcular automáticamente la nota respectiva definitiva de la siguiente
manera:(nota1*35%)+(nota2*35%)+(nota3*30%).

CODIGO NOMBRE NOTA 1 NOTA 2 NOTA 3 CODIGO NOMBRE NOTA 1 NOTA 2 NOTA 3 Nota

459877 Pablo Jaramillo 80 75 60 459877 Pablo Jaramillo 28 26.25 18 72.25

478532 GermánPérez 100 100 100 478532 GermánPérez 35 35 30 100

467356 Cesar Fernández 80 75 100 467356 Cesar Fernández 28 26.25 30 84.25

You might also like