//Variables
int Matriz0[3][3]; // Matriz 3X3 base
int Matriz1[3][3]; //Copia para calculos Matriz 3X3 base
int MatrizA[3][3]; //copia para calculos Matriz 3X3 para determinante A
int MatrizB[3][3]; //copia para calculos Matriz 3X3 para determinante B
int MatrizC[3][3]; //copia para calculos Matriz 3X3 para determinante C
int Resultado [3]; //Matriz 1x3 con los resultados
double Determinante; //Valor o calculo de determinante base
double DeterminanteA; //Valor o calculo de determinante para A
double DeterminanteB; //Valor o calculo de determinante para B
double DeterminanteC; //Valor o calculo de determinante para C
double x; //Valor de la variable X
double y; //Valor de la variable Y
double z; //Valor de la variable Z
int i; //Variable global para filas
int j; //Variable global para columnas
void setup() {
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.end(); //Detener la comuniacion con el puerto serial para borrar la informacion en memoria disponible
Serial.begin(9600); //comenzar la comuniacion con el puerto serial
Serial.println("Presione cualquier tecla para comenzar"); //informacion a usuario para empezar
while(Serial.available()==0){} //espera que el usuario ingrese algo para empezar
for(i = 0; i < 3 ; i++){ //recorrido de filas
for(j = 0; j < 3 ; j++){ //recorrido de columnas
Serial.print("Por favor ingrese el dato de la fila "); //informacion para que el usuario sepa que dato ingresa
Serial.print(i+1);
Serial.print(" y la columna ");
Serial.println(j+1);
Serial.end(); //Detener la comuniacion con el puerto serial para borrar la informacion en memoria disponible
Serial.begin(9600); //comenzar la comuniacion con el puerto serial
while(Serial.available() == 0){} //espera que el usuario ingrese el dato correspondiente
Matriz0 [i][j] = Serial.parseInt(); // guardar el dato que el usuario ingreso en la matriz base
}
}
Serial.println("La matriz es:"); //informacion a usuario
for (i = 0; i < 3; i++) { //recorrido de filas
for (j = 0; j < 3; j++) { //recorrido de columnas
Serial.print(Matriz0 [i][j]); //Mostrar en pantalla el valor correspondiente
Serial.print(" "); //separar los datos
}
Serial.println(); //separar con enter los datos
}
Serial.println("Por favor ingrese la columna de resultado"); //indicacion a usuario de empezar
for(j = 0 ; j < 3 ; j ++){ //recorrido de columnas
Serial.print("Ingrese el resultado de la columna "); //informacion a usuario para empezar
Serial.println(j+1);
Serial.end();
Serial.begin(9600);
while(Serial.available() == 0 ){} //espera que el usuario ingrese el dato correspondiente
Resultado [j] = Serial.parseInt(); // guardar el dato que el usuario ingreso en la matriz resultado
}
Serial.println("los datos ingresados son");
for(j = 0 ; j < 3 ; j ++){ //recorrido de columnas
Serial.println(Resultado [j]); //Mostrar en pantalla la columna de resultado correspondiente
}
Serial.println("La matriz es:");
for (i = 0; i < 3; i++) { //recorrido de filas
for (j = 0; j < 3; j++) { //recorrido de columnas
Serial.print(Matriz0 [i][j]); //Mostrar en pantalla el valor correspondiente
Serial.print(" "); //separar los datos
}
Serial.println(Resultado [i]); //Mostrar en pantalla la columna de resultado correspondiente
}
//Calculo de determinante
Determinante = ( Matriz0[0][0] * ((Matriz0[1][1] * Matriz0[2][2])-(Matriz0[1][2] * Matriz0[2][1]))-
Matriz0[0][1] * ((Matriz0[1][0] * Matriz0[2][2])-(Matriz0[1][2] * Matriz0[2][0]))+
Matriz0[0][2] * ((Matriz0[1][0] * Matriz0[2][1])-(Matriz0[1][1] * Matriz0[2][0])));
Serial.print("El determinante de la matriz es : "); //Mostrar en pantalla el Determinante
Serial.println(Determinante); //Mostrar en pantalla el Determinante
//Calculo De Determinante Matriz A
for (i = 0; i < 3; i++) { //recorrido de filas
for (j = 0; j < 3; j++) { //recorrido de columnas
MatrizA [i][j] = Matriz0 [i][j]; // Asignar los datos a la Matriz A
}
}
for(j = 0 ; j < 3 ; j ++){ //recorrido de columnas
MatrizA [j][0] = Resultado [j]; // Asignar los datos de Resultado a la Matriz A
}
Serial.println("La matriz A es:");
for (i = 0; i < 3; i++) { //recorrido de filas
for (j = 0; j < 3; j++) { //recorrido de columnas
Serial.print(MatrizA [i][j]); //Mostrar en pantalla el valor correspondiente
Serial.print(" "); //separar los datos
}
Serial.println(); //separar con enter los datos
}
DeterminanteA = ( MatrizA[0][0] * ((MatrizA [1][1] * MatrizA [2][2])-(MatrizA [1][2] * MatrizA [2][1]))-
MatrizA[0][1] * ((MatrizA [1][0] * MatrizA [2][2])-(MatrizA [1][2] * MatrizA [2][0]))+
MatrizA[0][2] * ((MatrizA [1][0] * MatrizA [2][1])-(MatrizA [1][1] * MatrizA [2][0])));
Serial.print("El determinante de la matriz es : "); //Mostrar en pantalla el Determinante
Serial.println(DeterminanteA); //Mostrar en pantalla el Determinante
x = DeterminanteA/Determinante; //Calculo de la Variable
Serial.print("El valor de X es : "); //Mostrar en pantalla la Variable
Serial.println(x); //Mostrar en pantalla la Varaible
//Calculo De Determinante Matriz B
for (i = 0; i < 3; i++) { //recorrido de filas
for (j = 0; j < 3; j++) { //recorrido de columnas
MatrizB [i][j] = Matriz0 [i][j]; // Asignar los datos a la Matriz B
}
}
for(j = 0 ; j < 3 ; j ++){ //recorrido de columnas
MatrizB [j][1] = Resultado [j]; // Asignar los datos de Resultado a la Matriz B
}
Serial.println("La matriz B es:");
for (i = 0; i < 3; i++) { //recorrido de filas
for (j = 0; j < 3; j++) { //recorrido de columnas
Serial.print(MatrizB [i][j]); //Mostrar en pantalla el valor correspondiente
Serial.print(" "); //separar los datos
}
Serial.println(); //separar con enter los datos
}
DeterminanteB = ( MatrizB[0][0] * ((MatrizB [1][1] * MatrizB [2][2])-(MatrizB [1][2] * MatrizB [2][1]))-
MatrizB[0][1] * ((MatrizB [1][0] * MatrizB [2][2])-(MatrizB [1][2] * MatrizB [2][0]))+
MatrizB[0][2] * ((MatrizB [1][0] * MatrizB [2][1])-(MatrizB [1][1] * MatrizB [2][0])));
Serial.print("El determinante de la matriz es : "); //Mostrar en pantalla el Determinante
Serial.println(DeterminanteB); //Mostrar en pantalla el Determinante
y = DeterminanteB/Determinante; //Calculo de la Variable
Serial.print("El valor de Y es : "); //Mostrar en pantalla la Variable
Serial.println(y); //Mostrar en pantalla la Varaible
//Calculo De Determinante Matriz C
for (i = 0; i < 3; i++) { //recorrido de filas
for (j = 0; j < 3; j++) { //recorrido de columnas
MatrizC [i][j] = Matriz0 [i][j]; // Asignar los datos a la Matriz C
}
}
for(j = 0 ; j < 3 ; j ++){ //recorrido de columnas
MatrizC [j][2] = Resultado [j]; // Asignar los datos de Resultado a la Matriz C
}
Serial.println("La matriz C es:");
for (i = 0; i < 3; i++) { //recorrido de filas
for (j = 0; j < 3; j++) { //recorrido de columnas
Serial.print(MatrizC [i][j]); //Mostrar en pantalla el valor correspondiente
Serial.print(" "); //separar los datos
}
Serial.println(); //separar con enter los datos
}
DeterminanteC = ( MatrizC[0][0] * ((MatrizC [1][1] * MatrizC [2][2])-(MatrizC [1][2] * MatrizC [2][1]))-
MatrizC[0][1] * ((MatrizC [1][0] * MatrizC [2][2])-(MatrizC [1][2] * MatrizC [2][0]))+
MatrizC[0][2] * ((MatrizC [1][0] * MatrizC [2][1])-(MatrizC [1][1] * MatrizC [2][0])));
Serial.print("El determinante de la matriz es : "); //Mostrar en pantalla el Determinante
Serial.println(DeterminanteC); //Mostrar en pantalla el Determinante
z = DeterminanteC/Determinante; //Calculo de la Variable
Serial.print("El valor de Z es : "); //Mostrar en pantalla la Variable
Serial.println(z); //Mostrar en pantalla la Varaible
}