Sie sind auf Seite 1von 23

2015

DA.NO.VI
Univ. Noya Villa Daniel

[SECCIN MATRICES]
Todo lo referente a la programacin de matrices en visual basic 2010

Seccin Matrices

NDICE
CONTENIDO

PAGINA
ndice

Introduccin

Lectura de una matriz

Transpuesta de una matriz

Gauss Jordan

12

Multiplicacin entre matrices

15

Inversa de una matriz

18

Determinante de una matriz

21

Univ. Noya Villa Daniel

Pgina 2

Seccin Matrices
1. INTRODUCCIN
Dentro de lo que son las matrices podremos hallar diferentes tipos de ejercicios,
aplicaciones y mtodos nosotros nos basaremos en la resolucin de dichas matrices y en la
programacin general para todo lo que vayamos necesitando para tal caso, para eso
iremos viendo primero conceptos y herramientas generales.

VARIABLES CON SUBNDICE


QUE SON ESTAS VARIABLES?
Las variables con subndice son aquellas que tiene un numero o ndice en la parte
inferior de la letra en si ejemplo:

()

(,)

Don de i puede variar desde 0 hasta N que pertenece solo a los nmeros enteros reales.
Cmo se determinan o dimensionan en el Visual Basic .Net?
Este tipo de variables se dimensionan de la siguiente manera:

()
Dim a(0 To 100) As Single 'Dimensionando la variable con subndice
En esta parte estamos diciendo que nuestra variable a va contener 100 datos distintos

(,)
Dim a(0 To 100, 0 To 100) As Single 'Dimensionando la variable con
subndice
En esta parte estamos diciendo que nuestra variable a va contener 10000 datos
distintos ya que tiene dos subndices si queremos ver en tipo matriz estaramos diciendo
que tiene 100 filas y 100 columnas, este tipo de variable es la que usaremos en todas
nuestras matrices

HERRAMIENTA DATAGRIDVIEW VISUAL BASIC .NET


QUE ES Y PARA QU SIRVE ESTA HERRAMIENTA?
Esta es una de las herramientas para trabajar con base de datos, el uso que lo
daremos nosotros ser para mostrar e introducir datos de nuestras matrices.
El DataGridView es un objeto que nos permite mostrar los campos de la tabla en
nuestra base de datos de una forma sencilla

Univ. Noya Villa Daniel

Pgina 3

Seccin Matrices

Univ. Noya Villa Daniel

Pgina 4

Seccin Matrices
COMO SE TRABAJA CON ESTA HERRAMIENTA?
Dentro de esta herramienta se puede crear columnas de tres mtodos diferentes:
Mtodo 1:
Dentro de la herramienta DataGridView en la parte superior derecho
hacemos clic y nos saldr el dialogo Tareas de DataGridView hacemos
clic en Agregar columna y luego hacemos clic en agregar hasta tener el
numero de columnas deseadas y luego hacemos clic en cerrar al momento
de cerrar observaremos que las columnas ya estn ingresadas mas una
fila pero en la parte del encabezado encontrar el texto siguiente Column 1
si queremos cambiar dicho texto solo tendremos que cambiarlo ya sea en
el momento de agregar columnas en la parte del Texto de encabezado o
caso contrario deberemos de hacer clic nuevamente en el men Tareas de
DataGridView y hacer clic en la parte que dice Editar columnas y ah
cambiar a nuestro gusto lo que nosotros queramos desde el ancho de las
columnas hasta el tipo de letra de cada una de ellas

Univ. Noya Villa Daniel

Pgina 5

Seccin Matrices
Para editar las columnas

Mtodo 2:
Para este mtodo usaremos dos contadores distintos es decir crearemos
las filas y columnas desde un botn o desde nuestra programacin.
Dim N As Integer 'Determinando la variable para el numero de
las filas y columnas de nuestro DataGridView
N = 5 'Usando un ejemplo de 5 filas y columnas
For i = 1 To N 'Usando el primer contador para crear las
columnas
DataGridView1.Columns.Add("Columna" + Str(i), "")
'Creando las columnas una por una con su nombre respectivo
Next
En esta parte ("Columna" + Str(i) debemos entender que estamos
dando un nombre a la columna eso es de manera obligado es por eso que
estamos jugando con la parte numeral para distinguir cada columna
adems en la parte que estn comillas sueltas ah podemos poner el
encabezado de cada columna, en la parte de abajo en las filas ya no es
necesario poner nada de lo anterior
For i = 1 To N - 1 'Usando el segundo contador para crear
las filas
DataGridView1.Rows.Add() 'Creando las filas una
por una
Next

Univ. Noya Villa Daniel

Pgina 6

Seccin Matrices
Mtodo 3:
Este es uno de los mtodos mas fciles que podremos hallar ya que en
solo dos filas de programacin podremos crear las filas y las columnas de
nuestro DataGridView
Dim N As Integer 'Determinando la variable para el numero de
las filas y columnas de nuestro DataGridView
N = 5 'Usando un ejemplo de 5 filas y columnas
DataGridView1.ColumnCount = N 'Creando las columnas
DataGridView1.RowCount = N 'Creando las filas
PARA QU SIRVE ESTA HERRAMIENTA?
Esta herramienta sirve como bien lo dijimos arriba para poder mostrar y leer datos
y trabajar en este caso con matrices, debemos mencionar que el verdadero uso
de esta herramienta se lo da para trabajar con base de datos.
2. LECTURA DE UNA MATRIZ:
Diagrama de flujo:

Inicio
m,n

i=1m

Finalizar

j=1n

a(i,j)

a(i,j)
Univ. Noya Villa Daniel

Pgina 7

Seccin Matrices
Codificacin:
Interface:

Cdigo:
Dim N, M As Integer 'Determinando la variable para el numero de
las filas y columnas de nuestro DataGridView
Dim a(0 To 100, 0 To 100) 'Determinando la variable para los datos
a ller de la matriz
N = Val(TextBox1.Text)

'Valor de N filas para la lectura

creacion de la matriz
M = Val(TextBox2.Text) 'Valor de M columnas para la lectura y
creacion de la matriz
DataGridView1.ColumnCount = M 'Creando las columnas
DataGridView1.RowCount = N 'Creando las filas
For i = 1 To N 'Iniciando el primer contador (Fila) para la
lectura y para mostrar

los datos

For j = 1 To M 'Iniciando el segundo contador (Columna) para la


lectura y para mostrar los datos

Univ. Noya Villa Daniel

Pgina 8

Seccin Matrices
a(i, j) = Val(InputBox("Digite el valor de a(" + Str(i) +
"," + Str(j) +

"):", "Lectura de datos"))

'Realizando la lectura de los datos


DataGridView1(j - 1, i - 1).Value = Str(a(i, j))
'Mostrando los datos leidos en el DataGridView
Next
Next
3. TRANSPUESTA DE UNA MATRIZ:
Diagrama de flujo:

Inicio
m,n

i=1m
i=1n

Finalizar

j=1n
j = 1 m
a(i,j)
b(i,j) = a(j,i)

b(i,j)

Univ. Noya Villa Daniel

Pgina 9

Seccin Matrices
Codificacin:
Interface:

Cdigo:
Dim N, M As Integer 'Determinando la variable para el numero de
las filas y columnas de nuestro DataGridView
Dim a(0 To 100, 0 To 100), b(0 To 100, 0 To 100) As Single
'Determinando la variable para los datos a leer de la matriz
Private Sub Button1_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Button1.Click
N = Val(TextBox1.Text) 'Valor de N filas para la lectura y
creacion de la matriz
M

Val(TextBox2.Text)

'Valor

de

columnas

para

la

lectura y creacion de la matriz


DataGridView1.ColumnCount = M 'Creando las columnas
Univ. Noya Villa Daniel

Pgina 10

Seccin Matrices
DataGridView1.RowCount = N 'Creando las filas
For i = 1 To N 'Iniciando el primer contador (Fila) para
la lectura y para mostrar los datos
For

To

'Iniciando

el

segundo

contador

(Columna) para la lectura y para mostrar los datos


a(i, j) = Val(InputBox("Digite el valor de a(" +
Str(i) + "," + Str(j) + "):", "Lectura de datos")) 'Realizando la
lectura de los datos
DataGridView1(j - 1, i - 1).Value = Str(a(i, j))
'Mostrando los datos leidos en el DataGridView
Next
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Button2.Click
DataGridView2.ColumnCount = N 'Creando las columnas
DataGridView2.RowCount = M 'Creando las filas
For i = 1 To M 'Iniciando el primer contador (Fila) para
la transpuesta y para mostrar los datos
For

To

'Iniciando

el

segundo

contador

(Columna) para la transpuesta y para mostrar los datos


b(i, j) = a(j, i) 'REalizando la transpuesta de la
matriz
DataGridView2(j - 1, i - 1).Value = Str(b(i, j))
'Mostrando los datos de la transpuesta en el DataGridView
Next
Next
End Sub

Univ. Noya Villa Daniel

Pgina 11

Seccin Matrices
4. GAUSS JORDAN:
Diagrama de flujo:
Inicio
n

i=1n

a(i,j+1)

j=1n

i=1n
i=1n
j=1n

a(i,j+1)

a(i,j)

i=1n

Finalizar

temp = a(i,i)
j <> i

No

j=1n+1

Si
Q = a(j,i) / a(i,i)

j=1n

a(i,j)
a(i,j) = a(i,j) / temp

k=1n+1

a(j,k) = a(j,k) ( a(i,k) * Q )

Codificacin:
Interface:

Univ. Noya Villa Daniel

Pgina 12

Seccin Matrices
Cdigo:
Dim N As Integer 'Determinando la variable para el numero de las
filas y columnas de nuestro DataGridView
Dim q, temp As Single 'Variables para los datos alternos
Dim a(0 To 100, 0 To 100) As Single 'Determinando la variable para
los datos a leer de la matriz
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
N = Val(TextBox1.Text) 'Valor de N filas para la lectura y
creacion de la matriz
DataGridView1.ColumnCount = N + 1 'Creando las columnas
DataGridView1.RowCount = N 'Creando las filas
For i = 1 To N 'Iniciando el primer contador (Fila) para
la lectura y para mostrar los datos
For j = 1 To N 'Iniciando el segundo contador
(Columna) para la lectura y para mostrar los datos
a(i, j) = Val(InputBox("Digite el valor de los
datos dependientes(" + Str(i) + "," + Str(j) + "):", "Lectura de
datos")) 'Realizando la lectura de los datos
DataGridView1(j - 1, i - 1).Value = Str(a(i, j))
'Mostrando los datos leidos en el DataGridView
Next
a(i, N + 1) = Val(InputBox("Digite el valor del dato
independiente " + Str(i) + ":", "Lectura de datos")) 'Realizando
la lectura de los datos independientes
DataGridView1(N, i - 1).Value = ":" + Str(a(i, N + 1))
'Mostrando los datos leidos en el DataGridView
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button2.Click
Univ. Noya Villa Daniel

Pgina 13

Seccin Matrices
DataGridView2.RowCount = N
For i = 1 To N 'Iniciando el primer contador para trabajar
con las operaciones filas columnas
For j = 1 To N 'Iniciando el segundo contador para
trabajar con las operaciones filas columnas
If j <> i Then 'Verificando que no sea datos de la
diagonal principal
q = a(j, i) / a(i, i) 'Operacion alterna
For k = 1 To N + 1 'Trabjando con las
operaciones filas columnas
a(j, k) = a(j, k) - (a(i, k) * q)
'Trabajando con las diagonales
Next
End If
Next
Next
For i = 1 To N 'Contador para volver la diagonal principal
en 1
temp = a(i, i) 'Buscando el dato de la diagonal
principal
For j = 1 To N + 1 'Contador para volver la diagonal
principal en 1
a(i, j) = a(i, j) / temp 'Dividiendo cada dato con
el valor de la diagonal principal
Next
Next
For i = 1 To N
DataGridView2(0, i - 1).Value = Str(a(i, N + 1))
'Mostrando el valor del resultado deseado
Next
End Sub
Univ. Noya Villa Daniel

Pgina 14

Seccin Matrices
5. MULTIPLICACIN ENTRE MATRICES:
Diagrama de flujo:
Inicio
m,n,p
i=1m
i=1n
j=1n
j=1p
a(i,j)
b(i,j)

i=1m

Finalizar

j=1p
c(i,j) = 0
k=1n

c(i,j)

c(i,j) = c(i,j) + a(i,k) * b(k,j)

Codificacin:
Interface:

Univ. Noya Villa Daniel

Pgina 15

Seccin Matrices
Cdigo:
Dim M, N, P As Integer 'Determinando la variable para el numero de
las filas y columnas de nuestro DataGridView
Dim a(0 To 100, 0 To 100), b(0 To 100, 0 To 100) As Single
'Determinando la variable para los datos a leer de la matriz
Dim c(0 To 100, 0 To 100) As Single 'Dimensionando la varible para
la matriz resultado
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
M = Val(TextBox1.Text) 'Valor de N filas para la lectura y
creacion de la matriz
N = Val(TextBox2.Text) 'Valor de N filas para la lectura y
creacion de la matriz
P = Val(TextBox3.Text) 'Valor de N filas para la lectura y
creacion de la matriz
DataGridView1.ColumnCount = N 'Creando las columnas
DataGridView1.RowCount = M 'Creando las filas
DataGridView2.ColumnCount = P 'Creando las columnas
DataGridView2.RowCount = N 'Creando las filas
For i = 1 To M 'Iniciando el primer contador (Fila) para
la lectura y para mostrar los datos
For

To

'Iniciando

el

segundo

contador

(Columna) para la lectura y para mostrar los datos


a(i, j) = Val(InputBox("Digite el valor de la
matriz a(" + Str(i) + "," + Str(j) + "):", "Lectura de datos"))
'Realizando la lectura de los datos
DataGridView1(j - 1, i - 1).Value = Str(a(i, j))
'Mostrando los datos leidos en el DataGridView
Next
Next

Univ. Noya Villa Daniel

Pgina 16

Seccin Matrices
For i = 1 To N 'Iniciando el primer contador (Fila) para
la lectura y para mostrar los datos
For

To

'Iniciando

el

segundo

contador

(Columna) para la lectura y para mostrar los datos


b(i, j) = Val(InputBox("Digite el valor de la
matriz b(" + Str(i) + "," + Str(j) + "):", "Lectura de datos"))
'Realizando la lectura de los datos
DataGridView2(j - 1, i - 1).Value = Str(b(i, j))
'Mostrando los datos leidos en el DataGridView
Next
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Button2.Click
DataGridView3.ColumnCount = P 'Creando las columnas
DataGridView3.RowCount = M 'Creando las filas
For i = 1 To M 'Iniciando el contador para trabajar con
las operaciones multiplicacion y suma
For j = 1 To P 'Iniciando el contador para trabajar
con las operaciones multiplicacion y suma
c(i, j) = 0 'Iniciando un acumulador
For k = 1 To N 'Contador para el trabajo del
acumulador
c(i, j) = c(i, j) + (a(i, k) * b(k, j))
'Realizando el calculo de la operacion fila columna
Next
DataGridView3(j - 1, i - 1).Value = Str(c(i, j))
'Mostrando el resultado final
Next
Next
End Sub
Univ. Noya Villa Daniel

Pgina 17

Seccin Matrices
6. INVERSA DE UNA MATRIZ:
Diagrama de flujo:
Inicio
n

i=1n
i=1n
j=1n

i=1n
j=1n

i=1n

Finalizar

a(i,j)
temp = a(i,j)
i <> j
i=j

Si

a(i,j + n) = 1

j=n+12*n

No
j=12*n

Si

a(i,j)

No
Q = a(j,i) / a(i,i)

a(i,j) = a(i,j) / temp

a(i,j + n) = 0
k=12*n

a(j,k) = a(j,k) - a(i,k) * Q

Codificacin:
Interface:

Univ. Noya Villa Daniel

Pgina 18

Seccin Matrices
Cdigo:
Dim N As Integer 'Determinando la variable para el numero de las
filas y columnas de nuestro DataGridView
Dim a(0 To 100, 0 To 100) As Single 'Determinando la variable para
los datos a leer de la matriz
Dim q, temp As Single 'Dimensionando la varible auxiliares
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
N = Val(TextBox1.Text) 'Valor de N filas para la lectura y
creacion de la matriz
DataGridView1.ColumnCount = N 'Creando las columnas
DataGridView1.RowCount = N 'Creando las filas
For i = 1 To N 'Iniciando el primer contador (Fila) para
la lectura y para mostrar los datos
For

To

'Iniciando

el

segundo

contador

(Columna) para la lectura y para mostrar los datos


a(i, j) = Val(InputBox("Digite el valor de la
matriz a(" + Str(i) + "," + Str(j) + "):", "Lectura de datos"))
'Realizando la lectura de los datos
DataGridView1(j - 1, i - 1).Value = Str(a(i, j))
'Mostrando los datos leidos en el DataGridView
If j = i Then 'Creando la matriz aumentada
a(i, j + N) = 1 'Colocando los valores a la
diagonal principal de nuestra matriz aumentada
Else
a(i, j + N) = 0 'Colocando los valores a los
demas datos de la matriz aumentada
End If
Next
Next
End Sub
Univ. Noya Villa Daniel

Pgina 19

Seccin Matrices
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button2.Click
DataGridView2.ColumnCount = N 'Creando las columnas
DataGridView2.RowCount = N 'Creando las filas
For i = 1 To N 'Iniciando el primer contador para trabajar
con las operaciones filas columnas
For j = 1 To N 'Iniciando el segundo contador para
trabajar con las operaciones filas columnas
If j <> i Then 'Verificando que no sea datos de la
diagonal principal
q = a(j, i) / a(i, i) 'Operacion alterna
For

To

k)

a(j,

'Trabjando

con

las

operaciones filas columnas


a(j,

k)

(a(i,

k)

q)

'Trabajando con las diagonales


Next
End If
Next
Next
For i = 1 To N 'Contador para volver la diagonal principal
en 1
temp = a(i, i) 'Buscando el dato de la diagonal
principal
For j = 1 To N * 2 'Contador para volver la diagonal
principal en 1
a(i, j) = a(i, j) / temp 'Dividiendo cada dato con
el valor de la diagonal principal
Next
Next
For i = 1 To N 'Contador para mostrar la inversa de la
matriz
Univ. Noya Villa Daniel

Pgina 20

Seccin Matrices
For j = N + 1 To N * 2 'Contador para mostrar la
inversa de la matriz
DataGridView2(j - (N + 1), i - 1).Value = Str(a(i,
j)) 'Mostrando la inversa de la matriz
Next
Next
End Sub
7. DETERMINANTE DE UNA MATRIZ:
Diagrama de flujo:
Inicio

i=1N
i=1N
j=1N
det = 1

j=1N
a(i,j)

j <> i

i=1N

det

det = det * a(i,i)

Finalizar

No

Si
Q = a(j,i) / a(i,i)

k=1N

a(j,k) = a(j,k) ( a(i,k) * Q )

Codificacin:
Interface:

Univ. Noya Villa Daniel

Pgina 21

Seccin Matrices
Codigo:
Dim N As Integer 'Determinando la variable para el numero de las
filas y columnas de nuestro DataGridView
Dim a(0 To 100, 0 To 100) As Single 'Determinando la variable para
los datos a leer de la matriz
Dim q, det As Single 'Dimensionando la varible auxiliares
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
N = Val(TextBox1.Text) 'Valor de N filas para la lectura y
creacion de la matriz
DataGridView1.ColumnCount = N 'Creando las columnas
DataGridView1.RowCount = N 'Creando las filas
For i = 1 To N 'Iniciando el primer contador (Fila) para
la lectura y para mostrar los datos
For

To

'Iniciando

el

segundo

contador

(Columna) para la lectura y para mostrar los datos


a(i, j) = Val(InputBox("Digite el valor de la
matriz a(" + Str(i) + "," + Str(j) + "):", "Lectura de datos"))
'Realizando la lectura de los datos
DataGridView1(j - 1, i - 1).Value = Str(a(i, j))
'Mostrando los datos leidos en el DataGridView
Next
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button2.Click
For i = 1 To N 'Iniciando el primer contador para trabajar
con las operaciones filas columnas
For j = 1 To N 'Iniciando el segundo contador para
trabajar con las operaciones filas columnas

Univ. Noya Villa Daniel

Pgina 22

Seccin Matrices
If j <> i Then 'Verificando que no sea datos de la
diagonal principal
q = a(j, i) / a(i, i) 'Operacion alterna
For k = 1 To N 'Trabjando con las operaciones
filas columnas
a(j,

k)

a(j,

k)

(a(i,

k)

q)

'Trabajando con las diagonales


Next
End If
Next
Next
det = 1 'Acumulador para la determinante
For i = 1 To N 'Contador para calcular el determinante
det

det

a(i,

i)

'Calculando

el

determinante

mediante la diagonal principal


Next
TextBox2.Text = Str(det) 'Mostrando el determinante
End Sub

Univ. Noya Villa Daniel

Pgina 23

Das könnte Ihnen auch gefallen