online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
/* Matriz 4.- Un programa que pida al usuario los datos de una matriz de 3×3, y calcule y muestre su matriz inversa. */ /* Valores de prueba, error en la linea 117 2 1 3 -1 2 4 0 1 3 */ #include <iostream> using namespace std; int main () { int n1=-1,n2=-1; float matriz[3][3]={},matriz2[3][3]={}; float matrizInversa[3][3]={1,0,0,0,1,0,0,0,1}; cout<<"Este programa calculara la matriz inverza de una matriz 3x3"<<endl; for (int i=0 ; i<3 ; i++) { for(int j=0 ; j<3 ; j++) { cout<<"Ingrese el valor para la fila "<<i+1<<" columna "<<j+1<<": "; cin>>matriz[i][j]; matriz2[i][j]=matriz[i][j]; matrizInversa[i][j]=matriz[i][j]; } } cout<<endl; if (matriz[0][0]==0 or matriz[1][1]==0 or matriz[2][2]==0) { cout<<"La matriz digitada no tiene inversa"; exit(0); } /*método de Gauss Jordan 1 0 0 0 1 0 0 0 1 */ //convirtiendo la fila 2 columna 0 a 0 y modificando los valores de la matriz inversa *[0][0] //Paso 1 if (matriz2[2][0]>0 and matriz2[0][0]>0) { for (int i=0 ; i<3 ; i++) { matriz2[2][i]= ( ( (-1*matriz2[2][0]) * matriz2[0][i]) + (matriz2[0][0] * matriz2[2][i]) ); matrizInversa[2][i]= ( (-1*matriz2[2][0]) * matrizInversa[2][i] ) + (matriz2[0][0] * matrizInversa[0][i]) ; } } else if (matriz2[2][0]>0 and matriz2[0][0]<0) { for (int i=0 ; i<3 ; i++) { matriz2[2][i]= ( ( (matriz2[2][0] * matriz2[0][i]) + ((-1*matriz2[0][0]) * matriz2[2][i]) )); matrizInversa[2][i]= ( matriz2[2][0] * matrizInversa[2][i] ) + ((-1*matriz2[0][0]) * matrizInversa[0][i]) ; } } else if (matriz2[2][0]<0 and matriz2[0][0]>0) { for (int i=0 ; i<3 ; i++) { matriz2[2][i]= ( ( (-1*matriz2[2][0]) * matriz2[0][i]) + (matriz2[0][0] * matriz2[2][i]) ); matrizInversa[2][i]= ( (-1*matriz2[2][0]) * matrizInversa[2][i] ) + (matriz2[0][0] * matrizInversa[0][i]) ; } } else if (matriz2[2][0]<0 and matriz2[0][0]<0) { for (int i=0 ; i<3 ; i++) { matriz2[2][i]= ( ( (matriz2[2][0] * matriz2[0][i]) + ((-1*matriz2[0][0]) * matriz2[2][i]) )); matrizInversa[2][i]= ( matriz2[2][0] * matrizInversa[2][i] ) + ((-1*matriz2[0][0]) * matrizInversa[0][i]) ; } } cout<<"Paso N.1 convirtiendo la F3C1 a 0: "<<endl;//Se mostrara el paso anterior si el numero a convertir es <> a 0 for (int i=0 ; i<3 ; i++) { for (int j=0 ; j<3 ; j++) { cout<<matriz2[i][j]<<" "; } cout<<endl; } //convirtiendo la fila 1 columna 0 a 0 y modificando los valores de la matriz inversa *[0][0] //Paso 2 if (matriz2[1][0]>0 and matriz2[0][0]>0) { for (int i=0 ; i<3 ; i++) { matriz2[1][i]= ( ( (-1*matriz2[1][0]) * matriz2[0][i]) + (matriz2[0][0] * matriz2[1][i]) ); matrizInversa[1][i]= ( (-1*matriz2[1][0]) * matrizInversa[1][i] ) + (matriz2[0][0] * matrizInversa[0][i]) ; } } else if (matriz2[1][0]>0 and matriz2[0][0]<0) { for (int i=0 ; i<3 ; i++) { matriz2[1][i]= ( ( (matriz2[1][0] * matriz2[0][i]) + ((-1*matriz2[0][0]) * matriz2[1][i]) )); matrizInversa[1][i]= ( matriz2[1][0] * matrizInversa[1][i] ) + ((-1*matriz2[0][0]) * matrizInversa[0][i]) ; } } else if (matriz2[1][0]<0 and matriz2[0][0]>0)//aca error { for (int i=0 ; i<3 ; i++) { matriz2[1][i]= ( ( (-1*matriz2[1][0]) * matriz2[0][i]) + (matriz2[0][0] * matriz2[1][i]) ); matrizInversa[1][i]= ( (-1*matriz2[1][0]) * matrizInversa[1][i] ) + (matriz2[0][0] * matrizInversa[0][i]) ; } } else if (matriz2[1][0]<0 and matriz2[0][0]<0) { for (int i=0 ; i<3 ; i++) { matriz2[1][i]= ( ( (matriz2[1][0] * matriz2[0][i]) + ((-1*matriz2[0][0]) * matriz2[1][i]) )); matrizInversa[1][i]= ( matriz2[1][0] * matrizInversa[1][i] ) + ((-1*matriz2[0][0]) * matrizInversa[0][i]) ; } } cout<<"Paso N.2 convirtiendo la F2C1 a 0: "<<endl;//Se mostrara el paso anterior si el numero a convertir es <> a 0 for (int i=0 ; i<3 ; i++) { for (int j=0 ; j<3 ; j++) { cout<<matriz2[i][j]<<" "; } cout<<endl; } //convirtiendo la fila 2 columna 1 a 0 y modificando los valores de la matriz inversa *[1][1] if (matriz2[2][1]>0 and matriz2[1][1]>0) { for (int i=0 ; i<3 ; i++) { matriz2[2][i]= ( ( (-1*matriz2[2][1]) * matriz2[1][i]) + (matriz2[1][1] * matriz2[2][i]) ); matrizInversa[2][i]= ( (-1*matriz2[2][1]) * matrizInversa[2][i] ) + (matriz2[1][1] * matrizInversa[1][i]) ; } } else if (matriz2[2][1]>0 and matriz2[1][1]<0) { for (int i=0 ; i<3 ; i++) { matriz2[2][i]= ( ( (matriz2[2][1] * matriz2[1][i]) + ((-1*matriz2[1][1]) * matriz2[2][i]) )); matrizInversa[2][i]= ( matriz2[2][1] * matrizInversa[2][i] ) + ((-1*matriz2[1][1]) * matrizInversa[1][i]) ; } } else if (matriz2[2][1]<0 and matriz2[1][1]>0) { for (int i=0 ; i<3 ; i++) { matriz2[2][i]= ( ( (-1*matriz2[2][1]) * matriz2[1][i]) + (matriz2[1][1] * matriz2[2][i]) ); matrizInversa[2][i]= ( (-1*matriz2[2][1]) * matrizInversa[2][i] ) + (matriz2[1][1] * matrizInversa[1][i]) ; } } else if (matriz2[2][1]<0 and matriz2[1][1]<0) { for (int i=0 ; i<3 ; i++) { matriz2[2][i]= ( ( (matriz2[2][1] * matriz2[1][i]) + ((-1*matriz2[1][1]) * matriz2[2][i]) )); matrizInversa[2][i]= ( matriz2[2][1] * matrizInversa[2][i] ) + ((-1*matriz2[1][1]) * matrizInversa[1][i]) ; } } cout<<"Paso N.3 convirtiendo la F3C2 a 0: "<<endl;//Se mostrara el paso anterior si el numero a convertir es <> a 0 for (int i=0 ; i<3 ; i++) { for (int j=0 ; j<3 ; j++) { cout<<matriz2[i][j]<<" "<<matrizInversa[i][j]; } cout<<endl; } //convirtiendo la fila 0 columna 2 a 0 y modificando los valores de la matriz inversa *[1][1] if (matriz2[2][0]>0 and matriz2[1][1]>0) { for (int i=0 ; i<3 ; i++) { matriz2[2][i]= ( ( (-1*matriz2[2][0]) * matriz2[1][i]) + (matriz2[1][1] * matriz2[2][i]) ); matrizInversa[2][i]= ( (-1*matriz2[2][0]) * matrizInversa[2][i] ) + (matriz2[1][1] * matrizInversa[1][i]) ; } } else if (matriz2[2][0]>0 and matriz2[1][1]<0) { for (int i=0 ; i<3 ; i++) { matriz2[2][i]= ( ( (matriz2[2][0] * matriz2[1][i]) + ((-1*matriz2[1][1]) * matriz2[2][i]) )); matrizInversa[2][i]= ( matriz2[2][0] * matrizInversa[2][i] ) + ((-1*matriz2[1][1]) * matrizInversa[1][i]) ; } } else if (matriz2[2][0]<0 and matriz2[1][1]>0) { for (int i=0 ; i<3 ; i++) { matriz2[2][i]= ( ( (-1*matriz2[2][0]) * matriz2[1][i]) + (matriz2[1][1] * matriz2[2][i]) ); matrizInversa[2][i]= ( (-1*matriz2[2][0]) * matrizInversa[2][i] ) + (matriz2[1][1] * matrizInversa[1][i]) ; } } else if (matriz2[2][0]<0 and matriz2[1][1]<0) { for (int i=0 ; i<3 ; i++) { matriz2[2][i]= ( ( (matriz2[2][0] * matriz2[1][i]) + ((-1*matriz2[1][1]) * matriz2[2][i]) )); matrizInversa[2][i]= ( matriz2[2][0] * matrizInversa[2][i] ) + ((-1*matriz2[1][1]) * matrizInversa[1][i]) ; } } cout<<"Paso N.4 convirtiendo la F1C3 a 0: "<<endl;//Se mostrara el paso anterior si el numero a convertir es <> a 0 for (int i=0 ; i<3 ; i++) { for (int j=0 ; j<3 ; j++) { cout<<matriz2[i][j]<<" "<<matrizInversa[i][j]; } cout<<endl; } //convirtiendo la fila 1 columna 2 a 0 y modificando los valores de la matriz inversa *[2][2] if (matriz2[1][2]>0 and matriz2[2][2]>0) { for (int i=0 ; i<3 ; i++) { matriz2[1][i]= ( ( (-1*matriz2[1][2]) * matriz2[2][i]) + (matriz2[2][2] * matriz2[1][i]) ); matrizInversa[1][i]= ( (-1*matriz2[1][2]) * matrizInversa[1][i] ) + (matriz2[2][2] * matrizInversa[2][i]) ; } } else if (matriz2[1][2]>0 and matriz2[2][2]<0) { for (int i=0 ; i<3 ; i++) { matriz2[1][i]= ( ( (matriz2[1][2] * matriz2[2][i]) + ((-1*matriz2[2][2]) * matriz2[1][i]) )); matrizInversa[1][i]= ( matriz2[1][2] * matrizInversa[1][i] ) + ((-1*matriz2[2][2]) * matrizInversa[2][i]) ; } } else if (matriz2[1][2]<0 and matriz2[2][2]>0) { for (int i=0 ; i<3 ; i++) { matriz2[1][i]= ( ( (-1*matriz2[1][2]) * matriz2[2][i]) + (matriz2[2][2] * matriz2[1][i]) ); matrizInversa[1][i]= ( (-1*matriz2[1][2]) * matrizInversa[2][i] ) + (matriz2[2][2] * matrizInversa[2][i]) ; } } else if (matriz2[1][2]<0 and matriz2[2][2]<0) { for (int i=0 ; i<3 ; i++) { matriz2[1][i]= ( ( (matriz2[1][2] * matriz2[2][i]) + ((-1*matriz2[2][2]) * matriz2[1][i]) )); matrizInversa[1][i]= ( matriz2[1][2] * matrizInversa[1][i] ) + ((-1*matriz2[2][2]) * matrizInversa[2][i]) ; } } cout<<"Paso N.5 convirtiendo la F2C3 a 0: "<<endl;//Se mostrara el paso anterior si el numero a convertir es <> a 0 for (int i=0 ; i<3 ; i++) { for (int j=0 ; j<3 ; j++) { cout<<matriz2[i][j]<<" "<<matrizInversa[i][j]; } cout<<endl; } //convirtiendo la fila 0 columna 1 a 0 y modificando los valores de la matriz inversa *[1][1] if (matriz2[0][1]>0 and matriz2[1][1]>0) { for (int i=0 ; i<3 ; i++) { matriz2[0][i]= ( ( (-1*matriz2[0][1]) * matriz2[1][i]) + (matriz2[1][1] * matriz2[0][i]) ); matrizInversa[0][i]= ( (-1*matriz2[0][1]) * matrizInversa[0][i] ) + (matriz2[1][1] * matrizInversa[1][i]) ; } } else if (matriz2[0][1]>0 and matriz2[1][1]<0) { for (int i=0 ; i<3 ; i++) { matriz2[0][i]= ( ( (matriz2[0][1] * matriz2[1][i]) + ((-1*matriz2[1][1]) * matriz2[0][i]) )); matrizInversa[0][i]= ( matriz2[0][1] * matrizInversa[0][i] ) + ((-1*matriz2[1][1]) * matrizInversa[1][i]) ; } } else if (matriz2[0][1]<0 and matriz2[1][1]>0) { for (int i=0 ; i<3 ; i++) { matriz2[0][i]= ( ( (-1*matriz2[0][1]) * matriz2[1][i]) + (matriz2[1][1] * matriz2[0][i]) ); matrizInversa[0][i]= ( (-1*matriz2[0][1]) * matrizInversa[0][i] ) + (matriz2[1][1] * matrizInversa[1][i]) ; } } else if (matriz2[0][1]<0 and matriz2[1][1]<0) { for (int i=0 ; i<3 ; i++) { matriz2[0][i]= ( ( (matriz2[0][1] * matriz2[1][i]) + ((-1*matriz2[1][1]) * matriz2[0][i]) )); matrizInversa[0][i]= ( matriz2[0][1] * matrizInversa[0][i] ) + ((-1*matriz2[1][1]) * matrizInversa[1][i]) ; } } cout<<"Paso N.6 convirtiendo la F1C2 a 0: "<<endl;//Se mostrara el paso anterior si el numero a convertir es <> a 0 for (int i=0 ; i<3 ; i++) { for (int j=0 ; j<3 ; j++) { cout<<matriz2[i][j]<<" "<<matrizInversa[i][j]; } cout<<endl; } //Se vuelve a verificar si las matrices 0,0; 1,1; 2,2 sean distinto de cero para verificar si la matriz calculada tiene inversa if (matriz[0][0]==0 or matriz[1][1]==0 or matriz[2][2]==0) { cout<<"La matriz digitada no tiene inversa"; exit(0); } //Se realiza el paso 7 matriz2[0][0]=matriz2[0][0]/matriz2[0][0]; for (int i=0 ; i<3 ; i++) { matrizInversa[0][i]=matrizInversa[0][i]/matriz2[0][0]; } matriz2[1][1]=matriz2[1][1]/matriz2[1][1]; for (int i=0 ; i<3 ; i++) { matrizInversa[1][i]=matrizInversa[1][i]/matriz2[1][1]; } matriz2[2][2]=matriz2[2][2]/matriz2[2][2]; for (int i=0 ; i<3 ; i++) { matrizInversa[2][i]=matrizInversa[2][i]/matriz2[2][2]; } cout<<"Paso N.7 convirtiendo la F1C1, F2C2, F3C3 a 1: "<<endl;//Se mostrara el paso anterior si el numero a convertir es <> a 0 for (int i=0 ; i<3 ; i++) { for (int j=0 ; j<3 ; j++) { cout<<matriz2[i][j]<<" "<<matrizInversa[i][j]; } cout<<endl; } return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue