Programm für Vektoren



  • Wie realisiere ich in meinem Programm, dass Vektoren be- und ausrechnen kann.

    Ich mache eine Eingabe z. B.:

    a*(b c d)=
    

    oder

    (a b c)*d=
    

    da soll dann jeweils der Vektor mit einer Zahl skalliert werden.

    Wenn ich

    (a b c)*(d e f)=
    

    dann soll das Scallarprodukt gebildet werden.
    Und wenn ich

    a+(b c d)=
    

    oder

    (a b c)+d=
    

    oder

    (a b c)+(d e f)=
    

    dann sollen die Vektoren addiert werden.

    PS: Die Buchstaben dienen hierbei nur zur Veranschaulichung.

    Ich stell mir das so vor, dass man eine Eingabevariable und eine Ausgabevariable hat.

    Bei der Eingabevariable müsste man dann Zeichen für Zeichen durchgehen und auf vorkommen von '(', Ziffern, Operatoren und ')' überprüfen und dann die Zahlen jeweils verrechen.

    Die Vektoren sollen dabei dynamische Größe haben dürfen und es soll überprüft werden das, was eingegeben wurde rechenbar ist.

    Mein Ansatz bisher ist folgender Code:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    main(int argc, char*argv[])
    {
          string Ausdruck;
          string Ausgabe;
          char *c;
          int i=0;
    
          cout << "Bitte einen Rechenausdruck eingeben: ";
          cin >> Ausdruck;
    
          while((c=Ausdruck[i])=='=')
          {
               if(!(c=='(' | c==' ' | c==')')) 
               {
                  Ausgabe[i]=c;
               }
          }
    }
    


  • Schreib dir doch mal eine Klasse, die einen Vektor repräsentiert:

    class Vector3{
    float x,y,z;
    
    public:
       Vector3 (float x, float y, float z){}
       Vector3 operator += (..)..
    };
    

    Da kannst du dann ja alle Operatoren überladen, die du willst.

    Das ist ja das schöne an Operatorenüberladung. Man kann damit machen, was man will. 😉


Anmelden zum Antworten