Matrices Visual

download Matrices Visual

of 23

Transcript of Matrices Visual

  • 7/24/2019 Matrices Visual

    1/23

    2015

    DA.NO.VI

    Univ. Noya Villa Daniel

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

  • 7/24/2019 Matrices Visual

    2/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 2

    NDICE

    CONTENIDO PAGINA

    nd ice 2

    Introduccin 3

    Lectu ra de una matr iz 7

    Transpuesta de una matr iz 9

    Gauss Jordan 12

    Mult ipl icacin entre matr ices 15

    Inv ersa de una matriz 18

    Determinante de una matr iz 21

  • 7/24/2019 Matrices Visual

    3/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 3

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

    ()

    Dima(0 To100) AsSingle'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

  • 7/24/2019 Matrices Visual

    4/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 4

  • 7/24/2019 Matrices Visual

    5/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 5

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

  • 7/24/2019 Matrices Visual

    6/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 6

    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.

    DimN AsInteger'Determinando la variable para el numero delas filas y columnas de nuestro DataGridView

    N = 5 'Usando un ejemplo de 5 filas y columnas

    Fori = 1 ToN '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

    Fori = 1 ToN - 1 'Usando el segundo contador para crear

    las filas

    DataGridView1.Rows.Add() 'Creando las filas una

    por una

    Next

  • 7/24/2019 Matrices Visual

    7/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 7

    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

    DimN AsInteger'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 = 1 m

    j = 1 n

    a(i,j)

    a(i,j)

    Finalizar

  • 7/24/2019 Matrices Visual

    8/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 8

    Codificacin:

    Interface:

    Cdigo:

    DimN, M AsInteger'Determinando la variable para el numero de

    las filas y columnas de nuestro DataGridView

    Dima(0 To100, 0 To100) 'Determinando la variable para los datos

    a ller de la matriz

    N = Val(TextBox1.Text) 'Valor de N filas para la lectura y

    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

    Forj = 1 ToM 'Iniciando el segundo contador (Columna) para la

    lectura y para mostrar los datos

  • 7/24/2019 Matrices Visual

    9/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 9

    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 = 1 m

    j = 1 n

    a(i,j)

    i = 1 n

    j = 1 m

    b(i,j)= a(j,i)

    b(i,j)

    Finalizar

  • 7/24/2019 Matrices Visual

    10/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 10

    Codificacin:

    Interface:

    Cdigo:

    DimN, M AsInteger'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

    PrivateSubButton1_Click(ByValsender AsSystem.Object, ByVal

    e AsSystem.EventArgs) HandlesButton1.Click

    N = Val(TextBox1.Text) 'Valor de N filas para la lectura y

    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

  • 7/24/2019 Matrices Visual

    11/23

  • 7/24/2019 Matrices Visual

    12/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 12

    4. GAUSS JORDAN:

    Diagrama de flujo:

    Inicio

    n

    i = 1 n

    j = 1 n

    a(i,j)

    a(i,j+1)i = 1 n

    j = 1 n

    j i

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

    Si

    k = 1 n + 1

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

    No

    i = 1 n

    temp = a(i,i)

    j = 1 n + 1

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

    i = 1 n

    j = 1 n

    a(i,j)

    a(i,j+1) Finalizar

    Codificacin:

    Interface:

  • 7/24/2019 Matrices Visual

    13/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 13

    Cdigo:

    DimN AsInteger'Determinando la variable para el numero de las

    filas y columnas de nuestro DataGridView

    Dimq, temp AsSingle'Variables para los datos alternos

    Dima(0 To100, 0 To100) AsSingle'Determinando la variable para

    los datos a leer de la matriz

    PrivateSubButton1_Click(ByValsender AsSystem.Object, ByVale

    AsSystem.EventArgs) HandlesButton1.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

    Fori = 1 ToN 'Iniciando el primer contador (Fila) para

    la lectura y para mostrar los datos

    Forj = 1 ToN '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

    EndSub

    PrivateSubButton2_Click(ByValsender AsSystem.Object, ByVale

    AsSystem.EventArgs) HandlesButton2.Click

  • 7/24/2019 Matrices Visual

    14/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 14

    DataGridView2.RowCount = N

    Fori = 1 ToN 'Iniciando el primer contador para trabajar

    con las operaciones filas columnas

    Forj = 1 ToN 'Iniciando el segundo contador para

    trabajar con las operaciones filas columnas

    Ifj i Then'Verificando que no sea datos de la

    diagonal principal

    q = a(j, i) / a(i, i) 'Operacion alterna

    Fork = 1 ToN + 1 'Trabjando con las

    operaciones filas columnas

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

    'Trabajando con las diagonales

    Next

    EndIf

    Next

    Next

    Fori = 1 ToN 'Contador para volver la diagonal principal

    en 1

    temp = a(i, i) 'Buscando el dato de la diagonal

    principal

    Forj = 1 ToN + 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

    NextFori = 1 ToN

    DataGridView2(0, i - 1).Value = Str(a(i, N + 1))

    'Mostrando el valor del resultado deseado

    Next

    EndSub

  • 7/24/2019 Matrices Visual

    15/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 15

    5. MULTIPLICACIN ENTRE MATRICES:

    Diagrama de flujo:

    Inicio

    m , n , p

    i = 1 m

    j = 1 n

    a(i,j)

    i = 1 n

    j = 1 p

    b(i,j)

    i = 1 m

    j = 1 p

    c(i,j)= 0

    k = 1 n

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

    Finalizar

    Codificacin:

    Interface:

  • 7/24/2019 Matrices Visual

    16/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 16

    Cdigo:

    DimM, N, P AsInteger'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

    Dimc(0 To100, 0 To100) AsSingle'Dimensionando la varible para

    la matriz resultado

    Private SubButton1_Click(ByValsender AsSystem.Object, ByVal e

    AsSystem.EventArgs) HandlesButton1.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

    Fori = 1 ToM '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 la

    matriz a("+ Str(i) + ","+ Str(j) + "):", "Lectura de datos"))

    'Realizando la lectura de los datosDataGridView1(j - 1, i - 1).Value = Str(a(i, j))

    'Mostrando los datos leidos en el DataGridView

    Next

    Next

  • 7/24/2019 Matrices Visual

    17/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 17

    Fori = 1 ToN 'Iniciando el primer contador (Fila) para

    la lectura y para mostrar los datos

    For j = 1 To P '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

    EndSub

    PrivateSubButton2_Click(ByValsender AsSystem.Object, ByVal

    e AsSystem.EventArgs) HandlesButton2.Click

    DataGridView3.ColumnCount = P 'Creando las columnas

    DataGridView3.RowCount = M 'Creando las filas

    Fori = 1 ToM 'Iniciando el contador para trabajar con

    las operaciones multiplicacion y suma

    Forj = 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

    NextDataGridView3(j - 1, i - 1).Value = Str(c(i, j))

    'Mostrando el resultado final

    Next

    Next

    EndSub

  • 7/24/2019 Matrices Visual

    18/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 18

    6. INVERSA DE UNA MATRIZ:

    Diagrama de flujo:

    Inicio

    n

    i = 1 n

    j = 1 n

    a(i,j)

    i = j a(i,j + n) = 1Si

    a(i,j + n) = 0

    No

    i = 1 n

    j = 1 n

    i j

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

    Si

    k = 1 2 * n

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

    No

    i = 1 n

    j = 1 2 * n

    temp = a(i,j)

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

    i = 1 n

    j = n + 1 2 * n

    a(i,j)

    Finalizar

    Codificacin:

    Interface:

  • 7/24/2019 Matrices Visual

    19/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 19

    Cdigo:

    DimN AsInteger'Determinando la variable para el numero de las

    filas y columnas de nuestro DataGridView

    Dima(0 To100, 0 To100) AsSingle'Determinando la variable para

    los datos a leer de la matriz

    Dimq, temp AsSingle'Dimensionando la varible auxiliares

    Private SubButton1_Click(ByValsender AsSystem.Object, ByVal e

    AsSystem.EventArgs) HandlesButton1.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

    Fori = 1 ToN '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 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

    Ifj = 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 losdemas datos de la matriz aumentada

    EndIf

    Next

    Next

    EndSub

  • 7/24/2019 Matrices Visual

    20/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 20

    Private SubButton2_Click(ByValsender AsSystem.Object, ByVal e

    AsSystem.EventArgs) HandlesButton2.Click

    DataGridView2.ColumnCount = N 'Creando las columnas

    DataGridView2.RowCount = N 'Creando las filas

    Fori = 1 ToN '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

    Ifj 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 * 2 'Trabjando con las

    operaciones filas columnas

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

    'Trabajando con las diagonales

    Next

    EndIf

    Next

    Next

    Fori = 1 ToN 'Contador para volver la diagonal principal

    en 1

    temp = a(i, i) 'Buscando el dato de la diagonal

    principal

    Forj = 1 ToN * 2 'Contador para volver la diagonal

    principal en 1

    a(i, j) = a(i, j) / temp 'Dividiendo cada dato conel valor de la diagonal principal

    Next

    Next

    For i = 1 To N 'Contador para mostrar la inversa de la

    matriz

  • 7/24/2019 Matrices Visual

    21/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 21

    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

    EndSub

    7. DETERMINANTE DE UNA MATRIZ:

    Diagrama de flujo:

    Inicio

    N

    i = 1 N

    j = 1 N

    a(i,j)

    i = 1 N

    j = 1 N

    j i

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

    Si

    k = 1 N

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

    No

    det = 1

    i = 1 N

    det = det * a(i,i)

    det

    Finalizar

    Codificacin:

    Interface:

  • 7/24/2019 Matrices Visual

    22/23

    Seccin Matrices

    Univ. Noya Villa Daniel Pgina 22

    Codigo:

    DimN AsInteger'Determinando la variable para el numero de las

    filas y columnas de nuestro DataGridView

    Dima(0 To100, 0 To100) AsSingle'Determinando la variable para

    los datos a leer de la matriz

    Dimq, det AsSingle'Dimensionando la varible auxiliares

    Private SubButton1_Click(ByValsender AsSystem.Object, ByVal e

    AsSystem.EventArgs) HandlesButton1.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

    Fori = 1 ToN '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 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

    EndSub

    Private SubButton2_Click(ByValsender AsSystem.Object, ByVal e

    AsSystem.EventArgs) HandlesButton2.ClickFori = 1 ToN '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

  • 7/24/2019 Matrices Visual

    23/23

    Seccin Matrices

    Univ Noya Villa Daniel Pgina 23

    Ifj i Then'Verificando que no sea datos de la

    diagonal principal

    q = a(j, i) / a(i, i) 'Operacion alterna

    Fork = 1 ToN 'Trabjando con las operaciones

    filas columnas

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

    'Trabajando con las diagonales

    Next

    EndIf

    Next

    Next

    det = 1 'Acumulador para la determinante

    Fori = 1 ToN '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

    EndSub