Matrixoperationen in C++

C++C++Beginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden Sie lernen, wie Sie verschiedene Matrixoperationen wie Addition, Subtraktion und Multiplikation auf einem gegebenen 2D-Array mit C++ programmieren. Sie werden auch lernen, wie Sie Arrays effektiv manipulieren und verwenden.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/BasicsGroup -.-> cpp/operators("Operators") cpp/BasicsGroup -.-> cpp/arrays("Arrays") cpp/ControlFlowGroup -.-> cpp/conditions("Conditions") cpp/ControlFlowGroup -.-> cpp/switch("Switch") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/operators -.-> lab-96242{{"Matrixoperationen in C++"}} cpp/arrays -.-> lab-96242{{"Matrixoperationen in C++"}} cpp/conditions -.-> lab-96242{{"Matrixoperationen in C++"}} cpp/switch -.-> lab-96242{{"Matrixoperationen in C++"}} cpp/for_loop -.-> lab-96242{{"Matrixoperationen in C++"}} cpp/output -.-> lab-96242{{"Matrixoperationen in C++"}} cpp/user_input -.-> lab-96242{{"Matrixoperationen in C++"}} cpp/files -.-> lab-96242{{"Matrixoperationen in C++"}} cpp/code_formatting -.-> lab-96242{{"Matrixoperationen in C++"}} end

Erstellen der C++-Programmdatei

Erstellen Sie in das Verzeichnis ~/project eine neue Datei mit dem Namen matrix_operations.cpp. Dies können Sie mit dem folgenden Befehl in der Konsole tun.

touch ~/project/matrix_operations.cpp

Einbinden der erforderlichen Bibliotheken und Festlegen der Hauptfunktion

Der erste Schritt in unserem C++-Programm ist es, die für die Eingabe-/Ausgabeverfahren erforderlichen Bibliotheken einzubinden und die Konsole zu leeren. Danach legen Sie die Hauptfunktion für Ihr C++-Programm fest. Sie können den folgenden Code als Vorlage verwenden.

#include<iostream.h>
#include<conio.h>

int main()
{
    clrscr();
    // Ihr Code hier
    getch();
    return 0;
}

Addition von zwei Matrizen

In diesem Schritt werden wir einen Fall erstellen, um die Addition von zwei Matrizen durchzuführen. Das C++-Programm wird den Benutzer bitten, die Ordnung oder Dimensionen der beiden Matrizen einzugeben (müssen m*n und o*p sein).

Wenn die Dimensionen der Matrizen nicht übereinstimmen, gibt das Programm eine Fehlermeldung zurück. Anschließend werden die Elemente der Matrizen eingegeben und addiert. Der endgültige Code sollte wie folgt aussehen.

//ADDITION
case 1:
    cout<<"\nGeben Sie die Ordnung der Matrix a (muss m*n sein): "<<endl;
    cin>>m;
    cout<<"* \n";
    cin>>n;
    cout<<"Geben Sie die Ordnung der Matrix b (muss o*p sein): "<<endl;
    cin>>o;
    cout<<"* \n";
    cin>>p;
    if (m==o&&n==p)
    {
        cout<<"Addition möglich "<<endl;
    }
    else
    {
        cout<<"Addition nicht möglich ";
        l=0;
    }

    if(l)
    {
        cout<<"\n\nGeben Sie die Elemente der Matrix 1 ein: "<<endl;
        for (i=1;i<=m;i++)
        {
            for (j=1;j<=n;j++)
                cin>>a[i][j];
        }
        cout<<"Elemente der Matrix 1 sind: ";
        for (i=1;i<=m;i++)
        {
            cout<<endl;
            for (j=1;j<=n;j++)
                cout<<a[i][j]<<" ";
        }
        cout<<"\nGeben Sie die Elemente der Matrix 2 ein: "<<endl;
        for (i=1;i<=o;i++)
        {
            for (j=1;j<=p;j++)
                cin>>b[i][j];
        }
        cout<<"Elemente der Matrix 2 sind: ";
        for (i=1;i<=o;i++)
        {
            cout<<endl;
            for (j=1;j<=p;j++)
                cout<<b[i][j]<<" ";
        }
        cout<<"\n\n\nAddition:\nc=a+b=";
        for (i=1;i<=m;i++)
        {
            for (j=1;j<=n;j++)
            {
                c[i][j]=a[i][j]+b[i][j];
            }
        }
        for (i=1;i<=m;i++)
        {
            cout<<endl;
            for (j=1;j<=n;j++)
                cout<<c[i][j]<<" ";
        }
    }
    break;

Subtraktion von zwei Matrizen

In diesem Schritt werden wir einen Fall erstellen, um die Subtraktion von zwei Matrizen durchzuführen. Das C++-Programm wird den Benutzer bitten, die Ordnung oder Dimensionen der beiden Matrizen einzugeben (müssen m*n und o*p sein).

Wenn die Dimensionen der Matrizen nicht übereinstimmen, gibt das Programm eine Fehlermeldung zurück. Anschließend werden die Elemente der Matrizen eingegeben und subtrahiert. Der endgültige Code sollte wie folgt aussehen.

//SUBTRACTION
case 2:
    cout<<"\nGeben Sie die Ordnung der Matrix a (muss m*n sein): "<<endl;
    cin>>m;
    cout<<"* \n";
    cin>>n;
    cout<<"Geben Sie die Ordnung der Matrix b (muss o*p sein): "<<endl;
    cin>>o;
    cout<<"* \n";
    cin>>p;
    if (m==o&&n==p)
    {
        cout<<"Subtraktion möglich "<<endl;
    }
    else
    {
        cout<<"Subtraktion nicht möglich ";
        l=0;
    }

    if(l)
    {
        cout<<"\n\nGeben Sie die Elemente der Matrix 1 ein: "<<endl;
        for (i=1;i<=m;i++)
        {
            for (j=1;j<=n;j++)
                cin>>a[i][j];
        }
        cout<<"Elemente der Matrix 1 sind: ";
        for (i=1;i<=m;i++)
        {
            cout<<endl;
            for (j=1;j<=n;j++)
                cout<<a[i][j]<<" ";
        }
        cout<<"\nGeben Sie die Elemente der Matrix 2 ein: "<<endl;
        for (i=1;i<=o;i++)
        {
            for (j=1;j<=p;j++)
                cin>>b[i][j];
        }
        cout<<"Elemente der Matrix 2 sind: ";
        for (i=1;i<=o;i++)
        {
            cout<<endl;
            for (j=1;j<=p;j++)
                cout<<b[i][j]<<" ";
        }
        cout<<"\n\n\nSubtraktion:\nc=a-b=";
        for (i=1;i<=m;i++)
        {
            for (j=1;j<=n;j++)
            {
                c[i][j]=a[i][j]-b[i][j];
            }
        }
        for (i=1;i<=m;i++)
        {
            cout<<endl;
            for (j=1;j<=n;j++)
                cout<<c[i][j]<<" ";
        }
    }
    break;

Multiplikation von zwei Matrizen

In diesem Schritt werden wir einen Fall erstellen, um die Multiplikation von zwei Matrizen durchzuführen. Das C++-Programm wird den Benutzer bitten, die Ordnung oder Dimensionen der beiden Matrizen einzugeben (müssen m*n und o*p sein).

Wenn die Dimensionen der Matrizen nicht kompatibel sind, gibt das Programm eine Fehlermeldung zurück. Anschließend werden die Elemente der Matrizen eingegeben und multipliziert. Der endgültige Code sollte wie folgt aussehen.

//MULTIPLICATION
case 3:
    cout<<"\nGeben Sie die Ordnung der Matrix a (muss m*n sein): "<<endl;
    cin>>m;
    cout<<"* \n";
    cin>>n;
    cout<<"Geben Sie die Ordnung der Matrix b (muss o*p sein): "<<endl;
    cin>>o;
    cout<<"* \n";
    cin>>p;
    if (n==o)
    {
        cout<<"Multiplikation möglich "<<endl;
    }
    else
    {
        cout<<"Multiplikation nicht möglich ";
        l=0;
    }

    if(l)
    {
        cout<<"\n\nGeben Sie die Elemente der Matrix 1 ein: "<<endl;
        for (i=1;i<=m;i++)
        {
            for (j=1;j<=n;j++)
                cin>>a[i][j];
        }
        cout<<"Elemente der Matrix 1 sind: ";
        for (i=1;i<=m;i++)
        {
            cout<<endl;
            for (j=1;j<=n;j++)
                cout<<a[i][j]<<" ";
        }
        cout<<"\nGeben Sie die Elemente der Matrix 2 ein: "<<endl;
        for (i=1;i<=o;i++)
        {
            for (j=1;j<=p;j++)
                cin>>b[i][j];
        }
        cout<<"Elemente der Matrix 2 sind: ";
        for (i=1;i<=o;i++)
        {
            cout<<endl;
            for (j=1;j<=p;j++)
                cout<<b[i][j]<<" ";
        }
        cout<<"\n\n\nMultiplikation:\nc=aXb=";
        for (i=1;i<=m;i++)
        {
            for (j=1;j<=p;j++)
            {
                c[i][j]=0;
                for (int k=1;k<=n;k++)
                {
                    c[i][j]=c[i][j]+(a[i][k]*b[k][j]);
                }
            }
        }
        for (i=1;i<=m;i++)
        {
            cout<<endl;
            for (j=1;j<=p;j++)
                cout<<c[i][j]<<" ";
        }
    }
    break;

Ausführen des C++-Programms

Sie können die Datei matrix_operations.cpp ausführen, indem Sie sie im Terminal mit dem folgenden Befehl kompilieren:

g++ ~/project/matrix_operations.cpp -o matrix && ./matrix

Sie müssen möglicherweise matrix_operations.cpp durch den Namen ersetzen, den Sie für Ihre C++-Programmdatei verwendet haben.

Angenommen, Ihr Code liefert die erwarteten Ergebnisse, sollten Sie eine Aufforderung sehen, eine Fallnummer einzugeben (1 für Addition, 2 für Subtraktion und 3 für Multiplikation). Nachdem Sie Ihre Wahl getroffen haben, wird das Programm Sie bitten, Matrizen basierend auf der gewählten Operation einzugeben.

Vollständiger C++-Programmcode

Hier ist der vollständige Code für unsere matrix_operations.cpp-Programmdatei.

#include<iostream.h>
#include<conio.h>

int main()
{
    clrscr();
    int a[50][50],b[50][50],c[50][50],i,j,m,n,o,p,l=1,r;
    cout<<"Geben Sie den Fall ein:\n";
    cin>>r;
    switch(r)
    {
        //ADDITION
        case 1:
            cout<<"\nGeben Sie die Ordnung der Matrix a (muss m*n sein): "<<endl;
            cin>>m;
            cout<<"*\n";
            cin>>n;
            cout<<"Geben Sie die Ordnung der Matrix b (muss o*p sein): "<<endl;
            cin>>o;
            cout<<"*\n";
            cin>>p;
            if (m==o&&n==p)
            {
                cout<<"Addition möglich "<<endl;
            }
            else
            {
                cout<<"Addition nicht möglich ";
                l=0;
            }

            if(l)
            {
                cout<<"\n\nGeben Sie die Elemente der Matrix 1 ein: "<<endl;
                for (i=1;i<=m;i++)
                {
                    for (j=1;j<=n;j++)
                        cin>>a[i][j];
                }
                cout<<"Elemente der Matrix 1 sind: ";
                for (i=1;i<=m;i++)
                {
                    cout<<endl;
                    for (j=1;j<=n;j++)
                        cout<<a[i][j]<<" ";
                }
                cout<<"\nGeben Sie die Elemente der Matrix 2 ein: "<<endl;
                for (i=1;i<=o;i++)
                {
                    for (j=1;j<=p;j++)
                        cin>>b[i][j];
                }
                cout<<"Elemente der Matrix 2 sind: ";
                for (i=1;i<=o;i++)
                {
                    cout<<endl;
                    for (j=1;j<=p;j++)
                        cout<<b[i][j]<<" ";
                }
                cout<<"\n\n\nAddition:\nc=a+b=";
                for (i=1;i<=m;i++)
                {
                    for (j=1;j<=n;j++)
                    {
                        c[i][j]=a[i][j]+b[i][j];
                    }
                }
                for (i=1;i<=m;i++)
                {
                    cout<<endl;
                    for (j=1;j<=n;j++)
                        cout<<c[i][j]<<" ";
                }
            }
            break;

        //SUBTRACTION
        case 2:
            cout<<"\nGeben Sie die Ordnung der Matrix a (muss m*n sein): "<<endl;
            cin>>m;
            cout<<"*\n";
            cin>>n;
            cout<<"Geben Sie die Ordnung der Matrix b (muss o*p sein): "<<endl;
            cin>>o;
            cout<<"*\n";
            cin>>p;
            if (m==o&&n==p)
            {
                cout<<"Subtraktion möglich "<<endl;
            }
            else
            {
                cout<<"Subtraktion nicht möglich ";
                l=0;
            }

            if(l)
            {
                cout<<"\n\nGeben Sie die Elemente der Matrix 1 ein: "<<endl;
                for (i=1;i<=m;i++)
                {
                    for (j=1;j<=n;j++)
                        cin>>a[i][j];
                }
                cout<<"Elemente der Matrix 1 sind: ";
                for (i=1;i<=m;i++)
                {
                    cout<<endl;
                    for (j=1;j<=n;j++)
                        cout<<a[i][j]<<" ";
                }
                cout<<"\nGeben Sie die Elemente der Matrix 2 ein: "<<endl;
                for (i=1;i<=o;i++)
                {
                    for (j=1;j<=p;j++)
                        cin>>b[i][j];
                }
                cout<<"Elemente der Matrix 2 sind: ";
                for (i=1;i<=o;i++)
                {
                    cout<<endl;
                    for (j=1;j<=p;j++)
                        cout<<b[i][j]<<" ";
                }
                cout<<"\n\n\nSubtraktion:\nc=a-b=";
                for (i=1;i<=m;i++)
                {
                    for (j=1;j<=n;j++)
                    {
                        c[i][j]=a[i][j]-b[i][j];
                    }
                }
                for (i=1;i<=m;i++)
                {
                    cout<<endl;
                    for (j=1;j<=n;j++)
                        cout<<c[i][j]<<" ";
                }
            }
            break;

        //MULTIPLICATION
        case 3:
            cout<<"\nGeben Sie die Ordnung der Matrix a (muss m*n sein): "<<endl;
            cin>>m;
            cout<<"*\n";
            cin>>n;
            cout<<"Geben Sie die Ordnung der Matrix b (muss o*p sein): "<<endl;
            cin>>o;
            cout<<"*\n";
            cin>>p;
            if (n==o)
            {
                cout<<"Multiplikation möglich "<<endl;
            }
            else
            {
                cout<<"Multiplikation nicht möglich ";
                l=0;
            }

            if(l)
            {
                cout<<"\n\nGeben Sie die Elemente der Matrix 1 ein: "<<endl;
                for (i=1;i<=m;i++)
                {
                    for (j=1;j<=n;j++)
                        cin>>a[i][j];
                }
                cout<<"Elemente der Matrix 1 sind: ";
                for (i=1;i<=m;i++)
                {
                    cout<<endl;
                    for (j=1;j<=n;j++)
                        cout<<a[i][j]<<" ";
                }
                cout<<"\nGeben Sie die Elemente der Matrix 2 ein: "<<endl;
                for (i=1;i<=o;i++)
                {
                    for (j=1;j<=p;j++)
                        cin>>b[i][j];
                }
                cout<<"Elemente der Matrix 2 sind: ";
                for (i=1;i<=o;i++)
                {
                    cout<<endl;
                    for (j=1;j<=p;j++)
                        cout<<b[i][j]<<" ";
                }
                cout<<"\n\n\nMultiplikation:\nc=aXb=";
                for (i=1;i<=m;i++)
                {
                    for (j=1;j<=p;j++)
                    {
                        c[i][j]=0;
                        for (int k=1;k<=n;k++)
                        {
                            c[i][j]=c[i][j]+(a[i][k]*b[k][j]);
                        }
                    }
                }
                for (i=1;i<=m;i++)
                {
                    cout<<endl;
                    for (j=1;j<=p;j++)
                        cout<<c[i][j]<<" ";
                }
            }
            break;
        // default case
        default:
            cout<<"Falsche Wahl";
    }
    getch();
    return 0;
}

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie verschiedene Matrizenoperationen auf einem gegebenen 2D-Array mit der C++-Programmierung durchführen. Sie haben auch gelernt, wie Sie Arrays manipulieren und verwenden. Sie sollten jetzt einen guten Überblick darüber haben, wie Matrizen in der C++-Programmierung funktionieren.