Entradas populares

sábado, 21 de noviembre de 2015

Matrices c++

MATRICES

Una matriz es un vector de vectores o un también llamado array bidimensional. La manera de declarar una matriz es C++ es similar a un vector:



1
int matrix[filas][columnas];


int es el tipo de dato, matrix es el nombre del todo el conjunto de datos y debo de especificar el numero de filas y columnas.
Las matrices también pueden ser de distintos tipos de datos como char, float, double, etc. Las matrices en C++ se almacenan al igual que los vectores en posiciones consecutivas de memoria.
Usualmente uno se hace la idea que una matriz es como un tablero, pero internamente el manejo es como su definición lo indica, un vector de vectores, es decir, los vectores están uno detrás del otro juntos.
La forma de acceder a los elementos de la matriz es utilizando su nombre e indicando los 2 subíndices que van en los corchetes.
Si coloco int matriz[2][3] = 10; estoy asignando al cuarto elemento de la tercera fila el valor 10.
No olvidar que tanto filas como columnas se enumeran a partir de 0. Bueno y para recorrer una matriz podemos usar igualmente un bucle. En este caso usando 2 for:
1
2
3
4
5
for(int i = 0; i < rows; i++) {
  for(int j = 0; j < cols; j++) {
    matrix[i][j] = i % j;
  }
}


Suma y resta de matrices





Multiplicación  de matrices
Ejemplo de suma,resta y multiplicación de matrices


#include <iostream>
using namespace std;
int main()
{
int A[100][100], B[100][100], C[100][100], a, b, av, bv, f2, c2, k, r;
//ingreso de datos
cout<<"Ingrese la cantidad de filas para la matriz 1 :"<<endl;
cin>>av;
cout<<"Ingrese la cantidad de columnas para la matriz 1 :"<<endl;
cin>>bv;
if (bv==av){
    cout<<"La matriz 1 es cuadrada"<<endl;
}
else {
    cout<<"La matriz 1 no es cuadrada"<<endl;
cout<<"\n--------------------------------------------------\n\n"<<endl;
}
cout<<"Ingrese la cantidad de filas para la matriz 2: "<<endl;
cin>>f2;
cout<<"Ingrese la cantidad de columnas para la matriz 2: "<<endl;
cin>>c2;

if (c2==f2){
    cout<<"La matriz 2 es cuadrada"<<endl;
}
else {
    cout<<"La matriz 2 no es cuadrada"<<endl;
cout<<"\n--------------------------------------------------\n\n"<<endl;
}
for (a=0;a<av;a++){
    for (b=0;b<bv;b++){
        cout<<"Ingrese el numero que corresponde a la posicion: ["<<a<<"]"<<"["<<b<<"] de la matriz 1 : "<<endl;
        cin>>A[a][b];
        cout<<"Ingrese el numero que corresponde a la posicion: ["<<a<<"]"<<"["<<b<<"] de la matriz 2 : "<<endl;
        cin>>B[a][b];
    }


//mostrar las matriz

cout<<"\nLa matriz 1 que usted ingreso es: \n\n"<<endl;
for (a=0;a<bv;a++){
for (b=0;b<av;b++){
cout<< A[a][b]<<" ";}
    cout<<"\n"<<endl;}
cout<<"\n--------------------------------------------------\n\n"<<endl;
cout<<"\nLa matriz 2 que usted ingreso es: \n\n"<<endl;
for (a=0;a<c2;a++){
for (b=0;b<f2;b++){
cout<< B[a][b]<<" ";}
    cout<<"\n"<<endl;}
    cout<<"\n--------------------------------------------------\n\n"<<endl;

//menú de operaciones

cout<<"Selecione operacion a realizar"<<endl;
cout<<"1.-Suma"<<endl;
cout<<"2.-Resta"<<endl;
cout<<"3.-Multiplicacion"<<endl;
cin>>k;
cout<<"\n--------------------------------------------------\n\n"<<endl;

//operación suma

if (k==1 and av==f2 and bv==c2){
    for (a=0;a<bv;a++){
       for (b=0;b<av;b++){
        C[a][b]=A[a][b]+B[a][b];
    }
}

//mostrar la matriz sumada

cout<<"\nLa suma de la matriz 1 y 2 es: \n\n"<<endl;
for (a=0;a<bv;a++){
    for (b=0;b<av;b++){
        cout<< C[a][b]<<" ";}
        cout<<"\n"<<endl;}
}
//operacion resta
if (k==2 and av==f2 and bv==c2){
for (a=0;a<bv;a++){
    for (b=0;b<av;b++){
          C[a][b]=B[a][b]-A[a][b];
    }
}

//mostrar la matriz restada

cout<<"\nLa resta de la matriz 1 y 2 es: \n\n"<<endl;
for (a=0;a<bv;a++){
    for (b=0;b<av;b++){
        cout<< C[a][b]<<" ";}
        cout<<"\n"<<endl;}
}

//operacion multiplicacion

if (k==3 and av==f2 and bv==c2){
    for (a=0;a<bv;a++){
       for (b=0;b<av;b++){
           for(r=0;r<bv;r++){
        C[a][b]+=A[a][r]*B[r][a];
    }
}
}


//mostrar la matriz multiplicada

cout<<"\nLa multiplicacion de la matriz 1 y 2 es: \n\n"<<endl;
for (a=0;a<bv;a++){
    for (b=0;b<av;b++){
        cout<< C[a][b]<<" ";}
        cout<<"\n"<<endl;}
}

//si no se cumplen las propiedades de la matriz 

else{
    cout<<"No se puede realizar la operacion por las propiedades de Matrices"<<endl;
}
cout<<"\n--------------------------------------------------\n\n"<<endl;
cout<<"\nFIN DEL PROGRAMA\n"<<endl;
cout<<"\n--------------------------------------------------\n\n"<<endl;

return 0;

}

No hay comentarios.:

Publicar un comentario