• Seawas!


    Bin wahrscheinlich zu blöd für dieses studium.
    häng nämlich schon beim einfachsten Beispiel.
    Kann mir bitte jemand sagen wie ich es schaffe, dass ich einen Operator einlesen kann.


    Sonst muss ich mir die Kugel geben oder meinen ganzen Verstand in Bier ersäufen. (wird wahrscheinlich nicht viel Arbeit)

  • Wie meinst du das, "einen operator einlesen"?
    + , - , * meinst du damit sowas?


    du könntest sie als String oder char einlesen.


    wie lautet die angabe, dann kann ich mir besser vorstellen, was du meinst.

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.»


    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • probier die ganze eingabe in einen string zu lesen und das ganze dann händisch zu zerlegen, d.h. zahlen rauszufiltern (eventuell in ein array speichern) und eben auch die operatoren und klammern (auch die in ein array oda sonstwohin) zu geben..


    kleines (pseudo)code-beispiel

    Code
    1. String input;
    2. input = readWord();
    3. for (int x=0; x< input.length(); x++)
    4. {
    5. wenn input.charAt(i) ein operator is, dann speichere in array1,
    6. wenn zahl dann speichere in array2 usw
    7. }


    wär mal ein anfang.. geht sicher effizienter.. aber fürn anfang tuts das auch..
    viel glück

    Give a man a fish and he'll eat it for the day.
    Teach him how to fish and he will eat for the rest of his life...

  • die zahlen in nem array zu speichern ist etwas umnständlich, du kannst sie auch direkt in zahlen umwandeln
    mit ParseToDouble zB in eine double zahl, geht mit anderen formaten aber auch, die syntax weiß ich jetzt nicht auswendig, wird aber nicht schwer sein die wo zu finden ;-)

  • hab ich ja natürlich gemeint
    man muss dazwischen noch eine funktion einbaun die die zahlen natürlich nicht als ziffern in das array einfügt sondern gleich als ganze zahl
    d.h eine funktionschreiben die vorher die zahlen rausliest..

    Code
    1. string zahl;
    2. wenn input.charAt(i) = ziffer/komma then zahl+= input.charAt(i)
    3. solange bis entweder operator oder klammer kommt und zahl zuende ist,
    4. dann den string zahl in eine double/float/int oda was acuh immer zahl umwandeln
    5. und in das array (double/float/int array) mit den zahlen einfügen


    letztendlich hast du 2 arrays, eines mit den zahlen, eines mit den operatoren.. dann kannst schön damit arbeiten..


    helped?

    Give a man a fish and he'll eat it for the day.
    Teach him how to fish and he will eat for the rest of his life...

  • danke hab jetzt die Lösung für mein Problem schon gefunden:
    if(o.charAt(0) == '+')
    {
    z3 = ((z1*n2)+(z2*n1));
    n3 = (n1*n2);
    print ("Ergebnis: " +z3);
    print (" " +n3);

    //...
    } else
    if(o.charAt(0) == '-')
    {
    z3 = ((z1*n2)-(z2*n1));
    n3 = (n1*n2);
    print ("Ergebnis: " +z3);
    print (" " +n3);

    //...
    } else
    usw.



    Hab nur jetzt ein neues Problem:
    Gibt es eine Möglichkeit?
    Wenn ich zwei Unbekannte a,b habe und ich möchte, dass b den Wert von a übernimmt aber ich möchte die beiden nicht gleich setzten
    BSP:
    a=3
    b soll jetzt auch 3 übernehmen aber nicht b=a


    Ich hoffe ihr versteht was ich meine.


    Kann mir da vielleicht jemand helfen

  • das kommt drauf an ob a und b objekte oder gewöhnliche variablen sind...
    bei variablen wird einfach der wert übergeben, dh. es ist absolut egal ob du in deinem fall schreibst b=a oder b=3.
    bei objekten würden dann tatsächlich a und b auf dasselbe objekt verweisen, da solltest eine zuweisung der art
    b = a.clone()
    machen... damit hat dann b seine eigene kopie von a.


    hoffe das hat geholfen