Matrix einlesen



  • Also es soll eine Matrix eingegeben werden, als array.
    Jede Zeile soll hintereinander eingegeben werden.
    Irgendwie krieg ichs nicht hin. habt ihr mal ein tip 😉



  • #include <iostream.h>
    void main( )
    {
    int matrix [2] [2];
    for (int i = 0; i < 2; i++)
    {
    for (int j = 0; j < 2; j++)
    {
    cout << "Geben sie das Matrixelement a" << i+1 << j+1 <<" ein: ";
    cin >> matrix [i] [j];
    }
    }
    cout << "Die eingegebene Matrix lautet: " << endl;
    for (int i = 0; i < 2; i++)
    {
    for (int j = 0; j < 2; j++)
    cout << matrix [i] [j] << " ";
    cout << endl;
    }
    }

    du kannst die matrix-größe natürlich auch mit eingeben.

    int dim1, dim2;

    cout << "Anzahl der Zeilen: ";
    cin >> dim1;
    ...
    int matrix [dim1] [dim2];

    gruß ebrosius



  • und wenn ich mal die Frage erweitern dürfte....

    wie funktioniert es, das ich die 2 dim. matrix erst an eine funktion übergebe, erst dann eine Wertzuweisung mache und sie dann als rückgabewert (bzw. matrix)der Funktion gestalte?

    mfg mel



  • du übergibst den zeiger auf die matrix an die funktion.
    damit arbeitest du auch in der funktion auf dem original.



  • ebrosius schrieb:

    du kannst die matrix-größe natürlich auch mit eingeben.

    int dim1, dim2;

    cout << "Anzahl der Zeilen: ";
    cin >> dim1;
    ...
    int matrix [dim1] [dim2];

    Das funktioniert so nicht, da alle Dimensionen von auf dem Stack erzeugten Arrays konstant und zur compile-Zeit feststehen müssen.

    Caipi



  • man könnte sich auch eine eigene Klasse für Matrizen schreiben, hab gestern Ansatzweise mit sowas angefangen:

    [cpp]#include <valarray>
    template <class T>
    class valmatrix
    {
    public:
    typedef int size_t;
    private:
    valarray< valarray<T> > m_values;
    public:
    // einige Ctors angelehnt an die des valarrays
    // operator=

    valarray<T>& operator[](size_t m); //gibt die Zeilen zurück
    valarray<T>& get_column(size_t n); //gibt ne Spalte zurück

    valmatrix<T> invert(); //gibt invertierte Matrix zurück
    //usw.
    }

    Die ganzen Operatoren, die mit Matrizen möglich sind, lassen sich straight forward implementieren, und wenn man mal fertig ist hat man ne KLasse die recht nützlich sein kann, wenn man öfters mit Matrizen zu tun hat...


Anmelden zum Antworten