Registriert seit: 13. Mär 2007
130 Beiträge
|
Re: Graphzeichner
7. Mai 2007, 19:35
Ich will dir (wegen Schularbeit) den Code nicht schicken, aber ich kann es dir in Worten beschreiben. Nimm einen String. Trage die Gleichung aus deinem Editfeld ein. Zerlege den String und achte dabei auf die Matematischen Operanden, also 5+64*9 würde in einer for schleife Wörlich so aussehen.
von Zeichen 1 bis Länge der Zeichenkette: prüfe ob es eine Zahl oder ein Operant ist. Ist es eine Zahl so prüfe zuerst ob die Boolsche Variable 'IS_a' false isr; wenn ja trage sie intern in die interne string Variable 'a' (in unserem Beispiel '5')deiner function ein, andernfalls in die interne string Variable 'b', ist es aber ein Operant, so trage ihn in die string variable 'operant' ein und überprüfe ob der Boolsche Variable 'IS_a' auf True. Trifft dies nicht zu, so setze 'IS_a' auf True, um folgende Zahlenkette in 'b' einzutragen(in unserem Beispiel erst '6' und dann '4' wobei die sechs beim eintrag von '4' nicht überschreben werden darf, also muss man ein Plus dazwischen setzen). Ist die Bedingung wahr, so rufe die OperandenFunctionen mit Parametern 'a', 'b' und 'Operant' auf, um 'a' und 'b' nach dem Operanden zu verechnen. der Rückgabewert der function ist das Ergebnis der Rechnung. Um hier nicht den Fehler zu machen die Punkt vor Strichrechnung zu machen empfiehlt es sich vorher eine Variable zu setzen, bei welcher prüfung ich mich befinde (also erst Klammern, dann Potenz, dann Mal, dann geteilt, dann plus, dann minus). trifft Operand in Variable nicht mit dem Wert von 'operant' zusammen, so wird 'a' und 'b' in eine weitere string Variable mit + angehängt und der Operand dazwischen gesetzt. Ebenso verhält es sich mit dem Ergebnis der OperandenFunction.
So jetzt nur noch den gegenwärtigen Operanden in 'Operant' setzen und for schleife solange aufrufen, bis alle zu bearbitenden Operanten abgearbeitet sind. Bevor die schleife erneut Aufgerunfen wird, so muss man die Variable mit der Neuen Gleichung in dei Varible der Alte Gleichung einsetzten. Kommt man innerhalb der for schleife ans ende des Strings, so muss man bevor man den Operanden bearbeitet, eine Prüfung zu diesem Zweck machen.
Ich habe vlt. etwas umstädlich geschrieben, du kannst ja mal das machen, was du verstanden hast. Ich kann ja dann nochmal kleinigkeiten erklären.
|