top of page

Matrices en C++. Uso, declaración, y sintaxis de las matrices en C++

Las matrices o como algunos las llaman "arreglos multidimensionales" son una estructura de datos bastante similar a los vectores o arreglos. De hecho, una matriz no es más que una serie de vectores contenidos uno en el otro (u otros), es decir, una matriz es un vector cuyas posiciones son otros vectores. Hablemos con más detalle de esto para quedar más claros.

Nota: Te recomiendo ver y comprender la sección de arrays o vectores, antes de iniciar con este artículo para poder dominar el tema de éste con más facilidad.

Primero, dejemos claro qué es una matriz. En términos generales, una matriz es una estructura conformada por filas y columnas, idealmente más de dos filas y columnas, de hecho, podemos decir que si una "matriz" tiene una única fila o una única columna, entonces estamos hablando de un vector y no una matriz como tal.

La intersección de una fila y una columna de la matriz son las casillas y cada una de ellas podrá poseer información, simple o compleja (ya dependerá de nuestras necesidades).

Ahora, tal como dije antes, un vector posee una única fila (o columna, como lo quieras ver) y de este modo un grupo de vectores unidos conforman una matriz, es por esto que al comienzo dije que una matriz es un vector conformado por otra serie de vectores.

Viéndolo desde el punto de vista de la programación, una matriz es un vector cuyas posiciones (de la cero a la n) son, cada una de ellas, otro vector

Como siempre, la mejor forma de comprender algo es viendo un ejemplo en acción, así que veamos un buen ejemplo de matrices en C++

p1.PNG
p2.PNG
p3.PNG

Producto de matrices en C++

p4.jpg

Si usted recién está empezando a aprender C++, esta es una muy buena oportunidad para continuar con su aprendizaje.
En este tema tratamos el producto de matrices en C++.
No consiste simplemente multiplicar cada elemento [i][j]de una matriz A por un elemento de una matriz B de las mismas posiciones.
El producto de matrices tiene cierta peculiaridad, a diferencia de la suma y resta entre matrices.

PROGRAMACION EN DEVC++

#include<iostream>
#include<math.h>
using namespace std;

int multip_mat(), i, j, k, filas1, columnas1, filas2, columnas2;
int numeros1[10][10], numeros2[10][10], multiplicacion[10][10];
double form_mat(), Vt, Vo, w, t, M[200][200];
int a, b;
int main ()
{
    int x;
    do
    {
        cout<<"MENU DE OPCIONES \n";
        cout<< "(1): MULTIPLICACION DE MATRICES \ n";
        cout<< "(2): RESOLVER LA FORMULA: V(t)=Vo*sin(w*t)\n";
        int opcion;
        cout<<"ELIJA LA OPCION QUE DESEE: \n"; cin>>opcion;
        cout<<endl;
        switch(opcion)
        {
            case1:
                {
                    multip_mat();
                }break;
            case2:
                {
                    form_mat();
                }break;
            default: cout<<"NO ES OPCION";
        }
        cout<<endl;
        cout<< "¿quieres elegir otra opcion del menú \ n";
        cout<< "(1): SI<<endl";
        cout<< "(2): NO<<endl";
        cout<< "ELIJA SI O NO: "; cin>>x;
        
    }
    while(x==1);
    system("pause");
    return 0;
}
int multip_mat()
{
    cout<<"INGRESE EL NUMERO DE FILAS DEL PRIMER MATRIZ: ";cin>>filas1;
    cout<<"INGRESE EL NUMERO DE COLUMNAS DEL PRIMER MATRIZ: ";cin>>columnas1;
    cout<<"INGRESE EL NUMERO DE FILAS DEL SEGUNDO MATRIZ: ";cin>>filas2;
    cout<<"INGRESE EL NUMERO DE FILAS DEL SEGUNDO MATRIZ: ";cin>>columnas2;
    if(columnas2==filas2)
    {
            cout<<"SI SE PUEDE REALIZAR LA MULTIPLICACION "<<endl<<endl;
            
    }
    else
    cout<<"NO SE PUEDE REALIZAR LA MULTIPLICACION "<<endl<<endl;
    cout<< "MATRIZ 1 \ n";
    for(i=0;i<filas1;i++)
    {
        for(j=0; j<columnas1; j++)
        {
            cout<<"DIGITE UN NUMERO["<<i<<"]["<<j<<"]:"; cin>>numeros1[i][j];
        }
        
    }
    for(i=0; i<filas1; i++)
    {
        for(j=0; j<columnas1; j++)
        {
            cout<<numeros1[i][j]<<"";
            
        }
        cout<<endl;
    }
    cout<<endl;
    cout<< "MATRIZ 2\n";
    for(i=0; i<filas2;i++)
    {
        cout<<"DIGITE UN NUMERO["<<i<<"]["<<j<<"]:"; cin>>numeros2[i][j];
    }
    

for(i=0; i<filas2; i++)
{
    for(j=0; j<columnas2; j++)
    {
        cout<<numeros2[i][j]<<"";
    }
    cout<<endl;
}
cout<<endl;
cout<<"LA MULTIPLICACION DE MATRICES \n";
for(i=0; i<filas1;i++)
{
    
    for(j=0;j<columnas2; j++)
    {
    multiplicacion [i][j]=0;
    }
}
for(i=0; i<filas1; i++)
{
    for(j=0; j<columnas2; j++)
    {
        for(k=0; k<filas2; k++)
        {
            multiplicacion[i][j]=multiplicacion[i][j]+numeros1[i][k]*numeros2[k][j];
            
            
        }
    }
}
for(i=0; i<filas1;i++)
{
    for(j=0; j<columnas2; j++)
    {
    
    cout<<multiplicacion[i][j]<<"";
    
}
cout<<endl;
}
}
double form_mat()
{
    cout<<"INGRESE EL VALOS Vo:"; cin>>Vo;
    a=0;
    for(w=5; w<=10; w=w+0.25)
    {
        b=0;
        for(t=0.1; t<=2; t=t+0.1)
        {
            M[a][b]=Vo*sin(w*t);
            b++;
        }
        a++;
      
    }
    for(i=0; i<40; i++)
    {
        for(j=0;  j<19; j++)
        {
            cout<<M[i][j]<<"";
        }
        cout<<endl;
    }
}

About Me

© 2023 by Going Places. Proudly created with Wix.com

  • White Facebook Icon
Join My Mailing List

I'm a paragraph. Click here to add your own text and edit me. It’s easy. Just click “Edit Text” or double click me to add your own content and make changes to the font.

 

Read More

 

bottom of page