danke delphifan!
Endlich auch mal was gutes
Zu 1: ich weiß schon, das <Zahl>E<Zahl> eine gültige Notation ist. Aber bei meinem rechner geht das nicht, weil es dann eventuell komplikationen gibt mit der konstante "e" (eulerische Zahl, basis des natürlichen logarithmus). Deshalb, kann man diese Notation nicht eingeben.
Aber den Bug, den du geschildert hast versteh ich nciht ganz..
Zu 2: x100 wird als x*100 interpretiert. Ist das mathematisch falsch? Ich dachte man kann das schreiben z. B. 2x23 für 2*x*23. Naja, auch wenns math falsch ist, soll ich es wirklich ändern, so dass ein syntaxfehler kommt?
Zu3: das stimmt. Ich habs aber extra so gemacht, dass wenn ein "," gefunden wird, und keine zahl davor oder danach, dass dann eine 0 drangehängt wird oder davor eingefügt wird. Wieder die Frage: soll ich es wirklich ändern, so dass ein syntaxfehler kommt? Ich fand das ganz praktisch, denn beim normalen taschenrechner kann man ja auch nur ein komma eingeben und eine zahl, dann hat man 0,<zahl>
Zu4: Whitespace nicht erlaubt. das stört mich eben nur beim parsen. ich könnte natürlich auch alles richtigstellen, bevor ich parse und alle ' ' löschen.
Soll ich das noch machen?
Zu 4: wie könnte man es denn sonst machen? 2^(3^4). An dieser "Logik" kann ich in meinem Programm jedenfalls definitiv nichts ändern! Da könnte ich das ganze Programm neu schreiben...
Zu 5: du musst hald 2div(-2) schreiben. du kannst ja auch nicht einfach
2/-2 schreiben um zu teilen. Bei delphi gehts vllt, aber ich finds eigentlich so ganz logisch.
Zu 6: Ich habs eigentlich extra so gemacht, Fehlertolleranz! Die klammern werden automatisch am Ende geschlossen bzw am anfang geöffnet. Es wäre nicht schwer einen solchen test zu machen, einfach alle klammern auf, und alle klammern zu zählen und vergleichen, oder? Ich find das ganz praktisch, weil der benutzer so irgendwie entlastet wird, wenn ers weiß. Und eben kein Fehler kommt, wenn ers vergessen hat.
Zu 7:
Den ersten fehler '((' kann ich mir selber nicht erklären. Den zweiten Fehler schon eher: Das programm denkt sich: aha, da ist eine klammer, also auch ein term. Dann meint es, es kann eine zahl zu einem real konvertieren, und da kommt dann eben der fehler.
Was ich aber noch sagen muss:
Ich find meinen CasiusRechner übrigens trotz allen Fehler immer noch praktisch, weil man damit viele funktionen, und rechenzeichen hat, die man sonst nicht zur verfügung hat. Man muss nur wissen wie man ihn bedient...
Viele Grüße