Dev - C++ - hallar el rango d euna matriz

 
Vista:

hallar el rango d euna matriz

Publicado por Bruno (1 intervención) el 02/07/2010 02:03:00
Hola a todos, necesito ayuda para crear un programa que para una matriz de orden m*n me de como resultado el rango d ela matriz, agradeseria mucho su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Hallar el rango de una matriz

Publicado por Sergio (1 intervención) el 27/10/2022 03:09:16
// PARA MAYOR COMPRENSIÓN DEL ALGORITMO VER EL SIGUIENTE VIDEO DE 3 MINUTOS --> https://www.youtube.com/watch?v=RH_TQMM7sHg

#include"iostream"
using namespace std;
void dimension();
void llenar_matriz(int f,int c);
void analisis_1(int f,int c);
void analisis_2(int f,int c,int i,int j);
void mostrar_matriz(int f,int c);
int f,c,cont=0;
float x[20][20];

int main(){

cout<<"\n\n\t\t\t\t\tBienvenido al programa hecho por SSR\n\t\t\t\t\t------------------------------------\n\n";
dimension();
cout<<"\nIngrese los elementos:\n----------------------\n\n";
llenar_matriz(f,c);
cout<<"\n\nMatriz inicial:\n---------------\n\n";
mostrar_matriz(f,c);
analisis_1(f,c);
cout<<"\n\nMatriz convertida a escalonada:\n-------------------------------\n\n";
mostrar_matriz(f,c);
cout<<"\n\nEl RANGO de la matriz: "<<cont<<endl;
return 0;
}

void dimension(){

do{
cout<<"Ingrese el numero de filas: ";
cin>>f;
}while(f<=0);
do{
cout<<"Ingrese el numero de columnas: ";
cin>>c;
}while(c<=0);
}

void llenar_matriz(int f,int c){

for(int i=0;i<f;i++){
for(int j=0;j<c;j++){
printf("Ingrese el elmento x[%i][%i]: ",i,j);
cin>>x[i][j];
}
}
}

void analisis_1(int f,int c){

float aux;

for(int i=0;i<f;i++){
for(int j=i;j<c;j++){
if(x[i][j]!=0){
analisis_2(f,c,i,j);
cont++;
break;
//Break
}
else{
for(int k=i+1;k<f;k++){
if(x[k][j]!=0){
for(int p=0;p<c;p++){
aux=x[k][p];
x[k][p]=x[i][p];
x[i][p]=aux;
}
break;
}
}
}
}
}


}

void analisis_2(int f,int c,int i,int j){

float aux;

for(int k=i+1;k<f;k++){
if(x[k][j]!=0){
aux=x[k][j]/x[i][j];
for(int p=0;p<c;p++){
x[k][p]=x[k][p]-(aux*x[i][p]);
}
}
}
}

void mostrar_matriz(int f,int c){

for(int i=0;i<f;i++){
for(int j=0;j<c;j++){
printf("\t%.2f", x[i][j]);
}
cout<<endl;
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar