You are on page 1of 8

Eliminacin Gaussiana

Cdigo
Module Module1
Sub Main()
'Declaracion de variables
Dim m, n, xc, yc, i, xp, yp, menu, subme1, xps, yps, h, g As
Integer

Dim sum, temp As Double


'Impresion del titulo
Console.SetCursorPosition(25, 1)
Console.Write("Metodo de Eliminacion Gaussiana")
'Se pide el tamao que va a medir la matriz
Console.SetCursorPosition(0, 4)
Console.Write("Inserte tamao del sistema de ecuaciones: ")
m = Console.ReadLine
n = m + 1

'Se declaran 2 matrices, "a" para las operaciones y "b" para


resultados
Dim a(n, m) As Double
Dim b(m) As Double

'Se inicializa la matriz con todos los valores como cero


For yp = 1 To m
For xp = 1 To n
a(xp, yp) = 0
Next
Next
'Inicia ciclo Do que dura todo el tiempo que el programa este
abierto, este ciclo contiene el menu y todo el procedimiento
Do
'Se borra la pantalla
Console.Clear()
Console.SetCursorPosition(25, 1)
'Se vuelve a imprimir el titulo
Console.Write("Metodo de Eliminacion Gaussiana")
'Impresion del encabezado de la matriz
Console.SetCursorPosition(2, 4)
Console.Write("x")
xc = 5
i = 1
For t As Integer = 1 To m
Console.SetCursorPosition(xc, 4)
Console.Write(i)
xc = xc + 8
i = i + 1
Next
Console.SetCursorPosition(xc, 4)
Console.Write("R")
'Imprime la matriz con sus valores actuales
xc = 5
yc = 7
For yp = 1 To m
For xp = 1 To n
Console.SetCursorPosition(xc, yc)
Console.Write(a(xp, yp))
xc = xc + 8
Next
xc = 5
yc = yc + 2
Next
yc = yc + 2
'Impresion del menu
Console.SetCursorPosition(0, yc)
Console.Write("Menu")
yc = yc + 1
Console.SetCursorPosition(0, yc)
Console.Write("1.- Modificar Valores")

yc = yc + 1
Console.SetCursorPosition(0, yc)
Console.Write("2.- Calcular")
yc = yc + 1
Console.SetCursorPosition(0, yc)
Console.Write("3.- Reiniciar")
yc = yc + 1
Console.SetCursorPosition(0, yc)
Console.WriteLine("4.- Salir")
Console.WriteLine()
'Pide un numero de la lista para ejecutar un punto del menu
menu = Console.ReadLine()
'Si se elige el primer punto del menu se empieza a pedir
datos para modificar los valores de la tabla
If menu = 1 Then
Console.Clear()
Console.SetCursorPosition(25, 1)
Console.Write("Metodo de Eliminacion Gaussiana")
Console.SetCursorPosition(2, 4)
Console.Write("x")
xc = 5
i = 1
For t As Integer = 1 To m
Console.SetCursorPosition(xc, 4)
Console.Write(i)
xc = xc + 8
i = i + 1
Next
Console.SetCursorPosition(xc, 4)
Console.Write("R")
xc = 5
yc = 7
For yp = 1 To m
For xp = 1 To n
Console.SetCursorPosition(xc, yc)
Console.Write(a(xp, yp))
xc = xc + 8
Next
xc = 5
yc = yc + 2
Next
yc = yc + 2
'Se pregunta que ecuacion se desea modificar
Console.SetCursorPosition(0, yc)
Console.Write("Que ecuacion quieres cambiar? ")
subme1 = Console.ReadLine()

yps = subme1
'En este ciclo For se van pidiendo los valores a
modificar y se actualizan en tiempo real en la pantalla
For xps = 1 To n - 1
Console.Clear()
Console.SetCursorPosition(25, 1)
Console.Write("Metodo de Eliminacion Gaussiana")
Console.SetCursorPosition(2, 4)
Console.Write("x")
xc = 5
i = 1
For t As Integer = 1 To m
Console.SetCursorPosition(xc, 4)
Console.Write(i)
xc = xc + 8
i = i + 1
Next
Console.SetCursorPosition(xc, 4)
Console.Write("R")
xc = 5
yc = 7
For yp = 1 To m
For xp = 1 To n
Console.SetCursorPosition(xc, yc)
Console.Write(a(xp, yp))
xc = xc + 8
Next
xc = 5
yc = yc + 2
Next
yc = yc + 2
Console.SetCursorPosition(0, yc)
Console.Write("Inserte X" & xps & "= ")
a(xps, yps) = Console.ReadLine()
Next
Console.Clear()
Console.SetCursorPosition(25, 1)
Console.Write("Metodo de Eliminacion Gaussiana")
Console.SetCursorPosition(2, 4)
Console.Write("x")
xc = 5
i = 1

For t As Integer = 1 To m
Console.SetCursorPosition(xc, 4)
Console.Write(i)
xc = xc + 8
i = i + 1
Next
Console.SetCursorPosition(xc, 4)
Console.Write("R")
xc = 5
yc = 7
For yp = 1 To m
For xp = 1 To n
Console.SetCursorPosition(xc, yc)
Console.Write(a(xp, yp))
xc = xc + 8
Next
xc = 5
yc = yc + 2
Next
yc = yc + 2
Console.SetCursorPosition(0, yc)
Console.Write("Inserte R= ")
a(xps, yps) = Console.ReadLine()
End If
'Si se elige la opcion 2 del menu se empieza a hacer los
calculos del sistema de ecuaciones por eliminacion Gaussiana
If menu = 2 Then
Console.Clear()
'Se inicia eliminacion hacia adelante
g = 0
For h = 1 To (m - 1)
For yp = 2 + g To m
xp = 1 + g
temp = a(xp, yp)
For xp = 1 + g To n
/ a(h, h)) * temp), 2)

a(xp, yp) = Math.Round(a(xp, yp) - ((a(xp, h)

Next
Next
g = g + 1
Next
'Se realiza sustitucion hacia atras
b(m) = Math.Round(a(n, m) / a(m, m), 2)

g =
h =
sum
For

3
3
= 0
yp = m - 1 To 1 Step -1
For xp = h To g
sum = sum + (a(xp, yp) * b(xp))
Next
b(yp) = Math.Round((a(n, yp) - sum) / a(yp, yp), 2)
h = h - 1
sum = 0

Next
'Se imprimen resultados en pantalla
Console.Clear()
Console.SetCursorPosition(25, 1)
Console.Write("Metodo de Eliminacion Gaussiana")
Console.SetCursorPosition(2, 4)
Console.Write("x")
xc = 5
i = 1
For t As Integer = 1 To m
Console.SetCursorPosition(xc, 4)
Console.Write(i)
xc = xc + 8
i = i + 1
Next
Console.SetCursorPosition(xc, 4)
Console.Write("R")
xc = 5
yc = 7
For yp = 1 To m
For xp = 1 To n
Console.SetCursorPosition(xc, yc)
Console.Write(a(xp, yp))
xc = xc + 8
Next
xc = 5
yc = yc + 2
Next
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
For xp = 1 To m
Console.WriteLine("X" & xp & "= " & b(xp))
Next
Console.WriteLine()
Console.WriteLine()

Console.Write("Presione enter para continuar...")


Console.ReadKey()
For yp = 1 To m
For xp = 1 To n
a(xp, yp) = 0
Next
Next
End If
'Si se elige la opcion 3 se reinician los valores de la
matriz a cero
If menu = 3 Then
For yp = 1 To m
For xp = 1 To n
a(xp, yp) = 0
Next
Next
'Para salir se elige la opcion 4, se ejecuta el
procedimiento de cierre del programa
End If
If menu = 4 Then
Console.Clear()
Console.SetCursorPosition(20, 2)
Console.Write("Gracias por utilizar el programa!")
Console.SetCursorPosition(10, 4)
Console.Write("Programa elaborado por: Carlos Ahmed
Galina Aldrete")
Console.SetCursorPosition(30, 6)
Console.Write("Grupo: 5CM12")
Console.SetCursorPosition(0, 15)
Console.Write("Presione enter para salir del
programa...")
Console.ReadKey()
End
End If
Loop
Console.ReadKey()
End Sub
End Module

You might also like