Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
TextBox1.Text = ""
TextBox2.Text = ""
If filas.Text = "" Or columnas.Text = "" Then
MsgBox("Ncesitas llenar los campos de filas y de columnas")
filas.Text = 0
columnas.Text = 0
End If
If (filas.Text - 1) > 10 Or (columnas.Text - 1) > 10 Then
MsgBox("Como maximo solo se pueden 10 filas o columnas")
filas.Text = 0
columnas.Text = 0
End If
If (filas.Text - 1) <> (columnas.Text - 1) Then
MsgBox("solo se puede sacar el determinante de una matriz cuadrada")
filas.Text = 0
columnas.Text = 0
End If
Dim n As Integer = 0
Dim k As Integer = 0
Dim r As Random
r = New Random
Dim m As Integer = 0
Dim rango As Integer = 0
Dim vardos As Double = 0
Dim vartres As Double = 0
Dim filac As Double = 0
Dim matriza(2, 4)
Dim matrizb(filas.Text, columnas.Text) As Integer
Dim matrixo(filas.Text - 1, columnas.Text - 1) As Integer
Dim ran As Random
Dim i As Integer = 0
Dim j As Integer = 0
ran = New Random
For i = 0 To filas.Text - 1
For j = 0 To columnas.Text - 1
matrixo(i, j) = ran.Next(1, 8)
matrizb(i, j) = matrixo(i, j)
TextBox1.Text = TextBox1.Text & matrixo(i, j) & " "
Next
TextBox1.Text = TextBox1.Text & vbCrLf
Next
Dim determinante As Double
If filas.Text = 1 Then
MsgBox("Elementos de matriz: 1 metodo utilizado: determinante de un solo elemento")
determinante = matrixo(0, 0)
End If
If filas.Text = 2 Then
MsgBox("Elementos de matriz: 2 metodo utilizado: determinante de rango dos")
determinante = (matrixo(0, 0) * matrixo(1, 1)) - (matrixo(1, 0) * matrixo(0, 1))
End If
Dim count As Integer = 1
Dim partea As Integer = 0
Dim parteb As Integer = 0
Dim var As Integer
If filas.Text = 3 Then
MsgBox("Elementos de matriz: 3 metodo utilizado: Metodo de Garrus")
For a As Integer = 0 To 2
For b As Integer = 0 To 2
matriza(a, b) = matrixo(a, b)
Next
Next
For a As Integer = 0 To 2
For b As Integer = 0 To 1
matriza(a, b + 3) = matriza(a, b)
Next
Next
For a As Integer = 0 To 2
For b As Integer = 0 To 4
TextBox2.Text = TextBox2.Text & matriza(a, b) & " "
Next
TextBox2.Text = TextBox2.Text & vbCrLf
Next
For a As Integer = 0 To 2
var = 1
count = count - 1
For b As Integer = 0 To 2
var = var * matriza(b, count)
count = count + 1
Next
count = count - 1
partea = partea + var
Next
count = 3
For a As Integer = 0 To 2
var = 1
count = count + 1
For b As Integer = 0 To 2
var = var * matriza(b, count)
count = count - 1
Next
count = count + 1
parteb = parteb - var
Next
determinante = partea + parteb
End If
If filas.Text > 3 Then
MsgBox("elementos de matriz mayores a tres, metodo utilizado: matriz triangular")
rango = (filas.Text) - 1
For k = 0 To rango - 1
If matrizb(k, k) = 0 Then
For n = k To rango
If matrizb(n, k) <> 0 Then
filac = n : Exit For
End If
Next n
For m = k To rango
vartres = matrizb(k, m)
matrizb(k, m) = matrizb(filac, m)
matrizb(filac, m) = vartres
Next m
End If
For n = k + 1 To rango
If matrizb(n, k) <> 0 Then
vardos = matrizb(n, k) / matrizb(k, k)
For m = k To rango + 1
matrizb(n, m) = matrizb(n, m) - matrizb(k, m) * vardos
Next m
End If
Next n
Next k
For i = 0 To rango
For j = 0 To rango
TextBox2.Text = TextBox2.Text & matrizb(i, j) & " "
Next
TextBox2.Text = TextBox2.Text & vbCrLf
Next
determinante = 1
For n = 0 To rango
determinante = determinante * matrizb(n, n)
Next n
End If
Label8.Text = "el determinante es: " & determinante
End Sub
End Class