PROGRAMA GAUSS JORDAN
Enviado por MarcianitoYT29 • 30 de Mayo de 2018 • Trabajo • 5.408 Palabras (22 Páginas) • 164 Visitas
using System;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GAUSS_JORDAN
{
class Program
{
static void Main(string[] args)
{
//COLOR INICIAL
Console.ForegroundColor = ConsoleColor.Yellow;
//DECIRLE AL USUARIO QUE HACER
Console.WriteLine("Este programa hace el metodo de GAUSS JORDAN para matrices de 3*4");
//DECLARACION DE VARIABLES
double[,] gauss = new double[3, 4];
Double R1, R2, R3, c = 1, f = 1;
//PROCESOS SIGUIENTES
//llenado del gauss
//Columnas
for (int i = 0; i < 3; i++)
{
for (int k = 0; k < 3; k++)
{
//PARA HACER EL SALTO
Console.WriteLine(" ");
//Filas
for (int m = 0; m < 4; m++)
{
Console.Write(gauss[k, m] + " ");
}
}//Termina el primer for
//Filas
Console.WriteLine("");
for (int l = 0; l < 4; l++)
{
Console.Write("Digite el numero de la fila {0}, Columna {0} :", c, f); gauss[i, l] = double.Parse(Console.ReadLine());
f += 1;
}
c += 1;
}//Termina el primer for
//IMPRIMIR LA MATRIZ NORMAL
Console.Clear();
for (int i = 0; i < 3; i++)
{
//PARA HACER EL SALTO
Console.WriteLine(" ");
//Filas
for (int l = 0; l < 4; l++)
{
Console.Write(gauss[i, l] + " ");
}
}//Termina el primer for
//RECIPROCO 1
for (int j = 0; j < 3; j++)
{
R1 = gauss[0, 0]; //Se pone R1 para que el valor que esta en 0, 0 de la matriz sea igual a la primera parte del reciproco
R2 = gauss[1, 0];
R3 = gauss[2, 0];
for (int k = 0; k < 4; k++)
{
//CONDICIONES POR QUE NO SE PUEDE DIVIDIR ENTRE 0
if (R1 == 0)
{
gauss[0, k] = (gauss[0, k]) * (0); //1/R1 PARA SACAR EL RECIPROCO DE EL NUMERO QUE DESPUES SE MULTIPLICARA POR LOS DEMAS
}
else
{
gauss[0, k] = (gauss[0, k]) * (1 / R1); //1/R1 PARA SACAR EL RECIPROCO DE EL NUMERO QUE DESPUES SE MULTIPLICARA POR LOS DEMASgauss[0, k] = (gauss[0, k]) * (1 / R1); //1/R1 PARA SACAR EL RECIPROCO DE EL NUMERO QUE DESPUES SE MULTIPLICARA POR LOS DEMASgauss[0, k] = (gauss[0, k]) * (1 / R1); //1/R1 PARA SACAR EL RECIPROCO DE EL NUMERO QUE DESPUES SE MULTIPLICARA POR LOS DEMAS
}
if (R2 == 0)
{
gauss[1, k] = (gauss[1, k]) * (0);
}
else
{
gauss[1, k] = (gauss[1, k]) * (1 / R2);
}
if (R3 == 0)
{
gauss[2, k] = (gauss[2, k]) * (0);
}
else
{
gauss[2, k] = (gauss[2, k]) * (1 / R3);
}
}
Console.WriteLine();
}
//IMPRESION 2 DESPUES DEL RECIPROCO
Console.ForegroundColor = ConsoleColor.Blue;
for (int i = 0; i < 3; i++)
{
//PARA HACER EL SALTO
Console.WriteLine(" ");
//Filas
for (int l = 0; l < 4; l++)
{
Console.Write(gauss[i, l] + " ");
}
}//Termina el primer for
Console.WriteLine(" ");
//PROCESO 2
//RESTAR EL RENGLON 1 - RENGLON 2 ES IGUAL A RENGLON 2
//RESTAR EL RENGLON 1 - RENGLON 3 ES IGUAL A RENGLON 3
for (int i = 1; i < 3; i++) //FILA
{
for (int l = 0; l < 4; l++) //COLUMNA
{
gauss[i, l] = (gauss[0, l] - gauss[i, l]);
}
}
//IMPRIMIR 3
Console.ForegroundColor = ConsoleColor.Green;
for (int i = 0; i < 3; i++)
{
//PARA HACER EL SALTO
Console.WriteLine(" ");
//Filas
for (int l = 0; l < 4; l++)
{
Console.Write(gauss[i, l] + " ");
}
}//Termina el primer for
//PROCESO 3
//RECIPROCO 2
for (int j = 1; j < 3; j++) //FILA
{
R2 = gauss[1, 1];//Se pone R2 para que el valor que esta en 1, 1 de la matriz sea igual a la primera parte del reciproco
R3 = gauss[2, 1];
for (int k = 0; k < 4; k++) //COLUMNA
{
//CONDICIONES POR QUE NO SE
...