rausfinden ob gerade oder ungerade Zahl
-
Badestrand schrieb:
5/*/*//6
und5+-+-6
sind ein himmelweiter Unterschied,der einzige unterschied ist die ursache der zuckungen im finger des taschenrechner-benutzers.
Badestrand schrieb:
/ und * sind wohl keine gültigen prä-unäre Operatoren.
um diese inkrement/dekrement anhängsel (a++, --a, usw.) geht's doch nicht.
-
~fricky schrieb:
der windoofs-taschenrechner macht z.b. aus:
-> 5////6 = 0.83333, also 5/6so ein Müll Taschenrecher. Sage ich doch, ich würde niemals so einen Taschenrechner benutzen, der sowas zulässt. gnome-calculator streikt da. Ich muss aber zugeben, 3+++-+++3 hat er akzeptiert und eine 0 daraus gemacht! Traurige Welt, ich weiß, warum ich nur den gnu-bc Calculator nehme.
-
supertux schrieb:
Leute, die "+-+-" eingeben gehören geschlagen.
Taschenrechner, die sowas zulassen, würde ich nie verwenden.
Na zum Glück ist C kein Taschenrechner :p
-
Wenn ich je wieder in die Verlegenheit käme, nochmal einen Taschenrechner basteln zu müssen, würde ich den wieder auf UPN/Stack- Basis erstellen. Die Eingaberegeln sind durch das Postfix- Format so eng gesteckt, daß der ganze komplizierte Parser- Kram wegfällt, Vorzeichenwechsel und Substraktion sind zudem getrennte Operationen und Fehlerrückgaben sind ganz leicht aussagekräftig gestaltbar.
Bestes Beispiel sind die HP- Taschenrechner, deren Nutzer mehrheitlich als ersten Bedienschritt die Werkseinstellung CAS (Computer Algebra System) auf UPN umstellen.
-
pointercrash() schrieb:
Bestes Beispiel sind die HP- Taschenrechner, deren Nutzer mehrheitlich als ersten Bedienschritt die Werkseinstellung CAS (Computer Algebra System) auf UPN umstellen.
klar, man will ja l33t sein. dazu gehört auch 'ne armbanduhr, die die zeit binär anzeigt, sowie ein notebook mit beschleunigungssensor und programmiert wird sowieso nur in scheme oder lisp.
-
~fricky schrieb:
klar, man will ja l33t sein. dazu gehört auch 'ne armbanduhr, die die zeit binär anzeigt, sowie ein notebook mit beschleunigungssensor und programmiert wird sowieso nur in scheme oder lisp.
Nein, sondern weil man via UPN auch große Terme schneller (weniger Tastendrücke) und sicherer eingeben kann, also ganz klare Bedienvorteile hat.
Das kann man von der Uhr mit Binäranzeige nicht behaupten und den Schlepptop mit Maple drauf kann man sich so auch meist sparen. Daß Andere mit der eingebauten Programmiersprache klarkommen, zeigt der große Freeware- Fundus für die Rechnerlein.
Das pauschal lächerlich machen zu wollen, zeugt eher davon, daß Du Dich anscheinend nicht (intensiv genug) mit dem Konzept vertraut gemacht hast.
-
~fricky schrieb:
Badestrand schrieb:
/ und * sind wohl keine gültigen prä-unäre Operatoren.
um diese inkrement/dekrement anhängsel (a++, --a, usw.) geht's doch nicht.
Ne, aber um "-a" und um "+a". Und "3--3" (also "3-(-3)") ist ein gültiger Ausdruck, "3*/3" hingegen nicht. Aber egal, du weißt worauf ich hinauswill und mir wird das langsam zu doof.
-
pointercrash() schrieb:
Das pauschal lächerlich machen zu wollen, zeugt eher davon, daß Du Dich anscheinend nicht (intensiv genug) mit dem Konzept vertraut gemacht hast.
ich bin ein grosser freund von einfachen und nützlichen dingen, soll heissen: maschinen sind dazu da, dem menschen das leben erleichtern. upn ist 'ne eingabemethode, die mehr der maschine entgegenkommt, nicht der schreibweise, wie menschen berechnungen auf papier kritzeln. sich mit zwei verschiedenen notationen, für ein und dieselbe sache, herumzuschlagen, ist daher nur was für echte freaks, aber nix für normale anwender.
-
Badestrand schrieb:
Und "3--3" (also "3-(-3)") ist ein gültiger Ausdruck, "3*/3" hingegen nicht.
aber 3-+-3 auch nicht. ausserdem ist ein vorzeichen kein operator, das macht ja nichts mit der zahl, sonder gehört zu ihr.
-
~fricky schrieb:
aber 3-+-3 auch nicht. ausserdem ist ein vorzeichen kein operator, das macht ja nichts mit der zahl, sonder gehört zu ihr.
nicht? kann man vorzeichenoperatiren nicht überladen? das wäre aber doof. dann könnte ich meine langzaglklasse ja nicht mehr wie ints aussehen lassen.
-
volkard schrieb:
~fricky schrieb:
aber 3-+-3 auch nicht. ausserdem ist ein vorzeichen kein operator, das macht ja nichts mit der zahl, sonder gehört zu ihr.
nicht? kann man vorzeichenoperatiren nicht überladen?
nö, kennste nicht noch aus der schule die reellen zahlen? null in der mitte, links die negativen und rechts die positiven.
-
~fricky schrieb:
volkard schrieb:
~fricky schrieb:
aber 3-+-3 auch nicht. ausserdem ist ein vorzeichen kein operator, das macht ja nichts mit der zahl, sonder gehört zu ihr.
nicht? kann man vorzeichenoperatiren nicht überladen?
nö, kennste nicht noch aus der schule die reellen zahlen? null in der mitte, links die negativen und rechts die positiven.
ah, verstehe.
(-5) ist -5 //vorzeichen
aber
(- 5) ist operator-(5) //unärer minus-operator
-
~fricky schrieb:
... upn ist 'ne eingabemethode, die mehr der maschine entgegenkommt, nicht der schreibweise, wie menschen berechnungen auf papier kritzeln.
Du hast Dich also gar nicht damit auseinandergesetzt. Mit klammerfreien Darstellungen hat sich Gottlob Frege schon 1879 befaßt, es ist eher eine Sache der Schwerfälligkeit des Konventionalismus als der pragmatischen Betrachtung und hat mit Maschinenfreundlichkeit erstmal gar nichts zu tun. Warum brauchen wir einen Klammern- und Vorzeichenmüllhaufen, den wir genausowenig auf einen Blick auflösen können, wie die Maschine?
~fricky schrieb:
sich mit zwei verschiedenen notationen, für ein und dieselbe sache, herumzuschlagen, ist daher nur was für echte freaks, aber nix für normale anwender.
Also ist jemand, der Steno kann, ein Freak? Die Darstellung ist kompakter, wenn man sie zu lesen gelernt hat, gibt es einen flüssigeren Arbeitslauf und schnelleren Überblick.
UPN ist so einfach wie nützlich.
Die eigentlichen Freaks sind eher Leute, die einen sinnvollen Kalkül für 3+-++-4 suchen oder C-Wettbewerbe für das unübersichtlichste Programm veranstalten.
-
volkard schrieb:
ah, verstehe.
(-5) ist -5 //vorzeichen
aber
(- 5) ist operator-(5) //unärer minus-operatorso ungefähr. bei einer taschenrechnereingabe kannst du z.b. machen: 3 + -5, dabei ist nur ein operator im spiel, das +. in programmiersprachen geht auch a = -b; das minus ist dann ein vorzeichen-umkehroperator.
pointercrash() schrieb:
Mit klammerfreien Darstellungen hat sich Gottlob Frege schon 1879 befaßt, es ist eher eine Sache der Schwerfälligkeit des Konventionalismus als der pragmatischen Betrachtung und hat mit Maschinenfreundlichkeit erstmal gar nichts zu tun.
das wenigste, was mathematiker so austüfteln, hat in der realität einen hohen gebrauchswert. ausserdem schmeckt diese stackbasierte upn einer maschine ganz vorzüglich. ich glaube irgendwo mal was darüber gelesen zu haben.
pointercrash() schrieb:
Die Darstellung ist kompakter, wenn man sie zu lesen gelernt hat, gibt es einen flüssigeren Arbeitslauf und schnelleren Überblick.
stell dir vor, es gäbe nur upn. was wäre dann 123*? 12*3 oder 1*23?. schon bräuchten wir ein zusätzliches trennzeichen und die kurze schreibweise wäre fast dahin.
-
~fricky schrieb:
das wenigste, was mathematiker so austüfteln, hat in der realität einen hohen gebrauchswert. ausserdem schmeckt diese stackbasierte upn einer maschine ganz vorzüglich. ich glaube irgendwo mal was darüber gelesen zu haben.
Achnee, kein Gebrauchswert? Deswegen folgen also die meisten shells den Prinzipien der polnischen Notation. Die Koinzidenz, daß Mensch und Maschine die freundlichen Häppchen gleichermaßen gut lesen können, bedeutet ja gerade, daß ein Mathematiker was Sinnvolles erdacht hat, das Datum der Erfindung ist der Beleg, daß der Mensch als Leser Ziel der Notation war.
~fricky schrieb:
stell dir vor, es gäbe nur upn. was wäre dann 123*? 12*3 oder 1*23?...
Zunächst einmal ein Stack- Error und zweitens kein UPN.
Faktisch braucht es natürlich Trenner und erst mit komplexen Termen spielt UPN seine Stärken aus. Wer als Mensch lieber auf Krücken geht, als mal einen Rollstuhl auszuprobieren, weil ihm das zu maschinenfreundlich ist, hat noch lange keinen Grund, sich darüber lustig zu machen, daß andere Vorteile sehen und nutzen.
-
pointercrash() schrieb:
Die Koinzidenz, daß Mensch und Maschine die freundlichen Häppchen gleichermaßen gut lesen können, bedeutet ja gerade, daß ein Mathematiker was Sinnvolles erdacht hat...
soll das ein witz sein? wenn ich z.b. habe: sin(cos(13 * 4^3)) * 7 kann ich das, so wie's da steht, in einen taschenrechner eintippen und er spuckt mir das ergebnis aus. umgeformt nach upn muss ich zuerst die innere klammer eingeben (was schon ziemlich doof ist), was dann etwa so aussehen würde: 4|3|^|13||cos|sin|7|** das ist nur unwesentlich kürzer, dafür aber viel unleserlicher als das original und den anfang suchen muss man auch noch selber.
-
~fricky schrieb:
soll das ein witz sein? wenn ich z.b. habe: sin(cos(13 * 4^3)) * 7 kann ich das, so wie's da steht, in einen taschenrechner eintippen und er spuckt mir das ergebnis aus. umgeformt nach upn muss ich zuerst die innere klammer eingeben (was schon ziemlich doof ist), was dann etwa so aussehen würde: 4|3|^|13||cos|sin|7|** das ist nur unwesentlich kürzer, dafür aber viel unleserlicher als das original und den anfang suchen muss man auch noch selber.
Kein Witz, denn wenn Du in den Taschenrechner mal eine Klammer zuviel oder zuwenig reinhaust, kriegst Du kein Ergebnis oder sogar ein falsches, am Besten noch unbemerkt. Warum haben denn die "praktischen" AEL- TR denn alle memoryfunktionen? Weil kaum jemand einen längeren Term am Stück korrekt eingibt. Das Editieren einer Fehleingabe ist meist so grauenhaft gelöst, daß die meisten Benutzer lieber neu eintippen, aber diesmal vom Bruch zuerst nur den Nenner (speichern), dann den Zähler und zum Schluß durch "recall memory", aber hoffentlich nicht einmal zuviel oder zuwenig "=" gedrückt. Aha, die Leute sortieren von sich aus schon um, manche gehen sogar soweit, sich Zwischenergebnisse auf Zetteln zu notieren, mit allen Nachkommastellen - eigentlich ist das benutzerunfreundlicher Bullshit, aber die Leute haben sich daran gewöhnt.
Der UPN- sortierte Term ist hingegen sehr handlich, auch für Umformungen, er steht ja links nach rechts entsprechend innen nach außen schon da. Bei jeder aufgelösten Operation hast Du ein Zwischenergebnis und Kontrolle. Nach einem Jahrzehnt FORTH und 20 Jahren HP- Taschenrechnern hab' ich mich so daran gewöhnt, daß ich zumindest bei Taschenrechnern nichts anderes anfasse - sogar den Windows- Rechner habe ich durch einen HP48G- Emulator getauscht. Es ist nur mangelnde Übung, UPN unübersichtlicher zu finden als AES.
Und was PN anbelangt, ist das sogar für die Konsole allgemein akzeptiert. Also definitiv keine Freakshow.
-
pointercrash() schrieb:
Kein Witz, denn wenn Du in den Taschenrechner mal eine Klammer zuviel oder zuwenig reinhaust, kriegst Du kein Ergebnis oder sogar ein falsches, am Besten noch unbemerkt. Warum haben denn die "praktischen" AEL- TR denn alle memoryfunktionen? Weil kaum jemand einen längeren Term am Stück korrekt eingibt. Das Editieren einer Fehleingabe ist meist so grauenhaft gelöst, daß die meisten Benutzer lieber neu eintippen, aber diesmal vom Bruch zuerst nur den Nenner (speichern), dann den Zähler und zum Schluß durch "recall memory", aber hoffentlich nicht einmal zuviel oder zuwenig "=" gedrückt. Aha, die Leute sortieren von sich aus schon um, manche gehen sogar soweit, sich Zwischenergebnisse auf Zetteln zu notieren, mit allen Nachkommastellen - eigentlich ist das benutzerunfreundlicher Bullshit, aber die Leute haben sich daran gewöhnt.
ok, ich sehe ein, dass bei den uralt-rechnern mit 7segment-LED displays, upn vorteilhafter ist, wenn's ums ausbessern von tippfehlern geht. aber spätestens seit es matrixdisplays gibt, d.h. der ganze term sichbar ist, man hin-, herscrollen und editieren kann, bringt upn rein gar nichts mehr.
-
~fricky schrieb:
ok, ich sehe ein, dass bei den uralt-rechnern mit 7segment-LED displays, upn vorteilhafter ist, wenn's ums ausbessern von tippfehlern geht. aber spätestens seit es matrixdisplays gibt, d.h. der ganze term sichbar ist, man hin-, herscrollen und editieren kann, bringt upn rein gar nichts mehr.
Nene, auch jetzt noch. Klammer zuviel oder zuwenig? Wenn das Ding gut ist, zeigt es Dir wenigstens an, wo es auf's Maul gefallen ist. Dann geht es ans Klammernzählen und die Stelle finden, wo sie eigentlich weg- oder hingehörte, hoffentlich machst Du's diesmal richtig
. Ein Term, der sich über mehr als zwei Zeilen erstreckt, ist so fast nicht mehr zu bändigen
.
Wenn Du hingegen bei UPN die instant evaluation abgeschaltet hast, ist er beim Auflösen sofort genau da, wo der Hund steckt, da gibt es keine Mehrdeutigkeiten. Daß auch diese Lösung vom mehrzeiligen Display profitiert, ist wohl logisch.Daß man übrigens über UPN auch ganz prima formal rechnen kann, hast Du wohl auch schon gewußt?
Also bitte tu' mir das nicht als veralteten Quatsch oder Snobzeugs ab.
-
pointercrash() schrieb:
Daß man übrigens über UPN auch ganz prima formal rechnen kann, hast Du wohl auch schon gewußt?
wusste ich nicht, hab's mir aber schon gedacht, dass dem upn-erfinder nicht nur daran gelegen war, klammern aus der welt zu schaffen. bestimmt gibt's für upn-ausdrücke vereinfachungsregeln und andere tricks, wie bei algebraischen ausdrücken auch.
pointercrash() schrieb:
Also bitte tu' mir das nicht als veralteten Quatsch oder Snobzeugs ab.
naja, in anbetracht der damaligen, leistungsschwachen hardware, war upn damals für taschenrechner sicherlich eine gute idee. aber heute, wo (übertrieben gesagt) jedes prepaid-handy dir 'ne kurvendiskussion hinplotten kann, sehe ich keinen grund mehr für upn. dass upn u.ä. für mathematiker interessant sein kann, will ich aber nicht abstreiten.