Anfänger braucht Hilfe



  • hallo leute,

    wir haben in der hs angefangen c++ zu programieren.
    nun sollen wir als 1 aufgabe ein programm schreiben das komplexezahlen
    einlesen und mit ihnen rechnen kann.
    für 2 zahlen ist das auch kein großes problem doch jetzt soll das
    dynamisch dh. ohne eigentliche eingabegrenze laufen ud da bin ich total
    überfragt.

    #include <iostream>
    using namespace std;
    #define ANZ 2

    class Komplex{
    private:
    double real;
    double imag;
    public:
    double schreibeReal(void);
    double schreibeImag(void);
    void leseZahl(void);
    };

    void Komplex::leseZahl(void){
    cin >> real;
    cin >> imag;
    };

    double Komplex:: schreibeReal(void){return real;}
    double Komplex::schreibeImag(void){return imag;}

    int main(void)
    {
    Komplex zahl1,zahl2;
    double real, imag;

    zahl1.leseZahl();
    zahl2.leseZahl();

    real = ( zahl1.schreibeReal() ) + ( zahl2.schreibeReal() );
    imag = ( zahl1.schreibeImag() ) + ( zahl2.schreibeImag() );

    cout << real;
    cout << "+J" << imag << endl;

    }



  • Hallo,

    Du kannst einen vector<Komplex> erzeugen und den dann füllen. Zum Eingeben nimm eine while-Schleife, die so lange läuft, wie gültige werte eingegeben werden. Dazu kannst du deine leseZahl() funktion etwas abändern.

    bool Komplex::leseZahl(void){
      return cin >> real >> imag;
    }; // gibt jetzt false zurück wenn keine zwei Zhalen angegeben wurden
    // dann etwa sowas
    std::vector<Komplex> kompvect;
    Komplex tmp;
    while( tmp.leseZahl())
       kompvect.push_back(tmp);
    

    Bitt verwende das nächste Mal die Code-Tags.


Anmelden zum Antworten