Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Matrices 2020- i Matrices , arreglos bidimensionales o tablas Es una estructura de datos básicos que tiene dimensiones : Fila y columna COLUMNA 0 COLUMNA1 COLUMNA 2 FILA 0 DATO [0][0] DATO[0][1] DATO[0][2] FILA 1 DATO [1][0] DATO [1][1] DATO [1][2] FILA 2 DATO [2][0] DATO [2][1] DATO [2][2] FORMATO DE DECLaracion <Tipo de dato> <Identificador> [1º Dimension][2º Dimension] EJEMPLO : Int Datos[10][15] ; //es una matriz que tiene 10 filas y 15 columnas Tener en cuenta que La primera y segunda dimensión son enteros conocidos. Es decir que las 2 dimensiones se tienen que conocer si o si. Errores comunes Lo primero que debes hacer es declarar bien tu matriz , es decir tienes que poner tus dos dimensiones . Int Datos[N][M] //CORRECTO Int Datos [ ][M] // INCORRECTO Int Datos [N][ ] //INCORRECTO Ya que si declaras con un espacio en blanco, no especificas cuantas columnas o filas tienes. Cuando declaras en una función puede poner solo la segunda dimensión Es decir puede poner : void IngresarDatos(int Datos [ ][N], int n) RECOMENDACIÓN: void IngresarDatos(int Datos [N][M], int n) Problema introductorio /*Piden diseñar un programa que solicite los datos de una matriz cuadrada de enteros y que solo obtenga los datos de la diagonal y que los demás sean cero. Dicho Programa también tiene que permitir imprimir los datos*/ #include <iostream> #define N 100 Using namespace std; Void IngresaMatriz(int Datos [N][N], int &nfil, int &ncol); Void ImprimeMatriz(int Datos [N][N], int nfil, int ncol); Void SoloDiagonal(int Datos [N][N], int nfil, int ncol); Void IngresaMatriz (int Datos [N][N], int &nfil, int &ncol) { cout<<“Ingrese # filas”<<endl; cin>>nfil; cout<<“Ingrese columnas”<<endl; cin>>ncol; cout<<“Ingrese”<<ncol<<“enteros por cada fila :”<<endl; for(int i=0 ; i<nfil ; i++) { for(int j=0 ; j<ncol ; j++) {cin>>Datos[ i ][ j ]; } } } Void ImprimeMatriz(int Datos [N][N], int nfil, int ncol) { cout<<“\nMatriz de Datos : ”<<endl; for(int i=0 ; i<nfil ; i++) { for(int j=0 ; j<ncol ; j++) cout<<Datos[ i ][ j ]<<“ \t ”; cout<<endl; } } Void SoloDiagonal(int Datos [N][N], int nfil, int ncol) { int i,j,aux; for(i=0 ; i<nfilas ; i++ ) { for(j=0 ; j<ncol ; j++) { if(i != j ) { Datos[i][j]=0; } } } } Int main( ) { int Datos [N][N], nfil, ncol; IngresaMatriz(Datos , nfil , ncol); cout<<“\nMatriz Incial :”<<endl; ImprimeMatriz(Datos , nfil , ncol); cout<<“\nSolo Diagonal : ”<<endl; SoloDiagonal( Datos , nfil, ncol); ImprimeMatriz(Datos , nfil , ncol); return 0; }
Compartir