Logo Studenta

TEORIA MATRICES

¡Estudia con miles de materiales!

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;
}

Continuar navegando