Punkt vor Strich?

Neue Frage »

tigerbine Auf diesen Beitrag antworten »
Punkt vor Strich?
Hallo zusammen,

sagt mal, wie wird in einem Programm, sei es Excel, matlab &Co eigentlich diese Regel umgesetzt?

Wie ist das mittlerweile mit Taschenrechnern? Bei vielen wird ja quasi eine Eingabezeile erstellt und das "=" am Ende würde dem Befehl "ausführen" entsprechen? Mein Modell verfügt darüber noch nicht und um sicher zu gehen, mühe ich meist mit Klammern ab. Augenzwinkern

Danke Wink
Airblader Auf diesen Beitrag antworten »

Programme setzen die Regel idR ( Augenzwinkern ) um. Die Programmiersprachen setzen das normalerweise sogar schon von alleine so um.

In Taschenrechnern, bei denen (wie zb beim Windows Rechner) immer nur die aktuelle Eingabe eingezeigt wird (und keine "Eingabezeile"), wird es eigentlich auch umgesetzt.
Nur ich persönlich fühle mich da dann immer ein bisschen unsicher und rechne lieber stückweise.

Im Zweifelsfall immer ein Beispiel machen. z.B. "5+1*2". Kommt 12 raus, isses falsch, bei 7 stimmts.

air
tigerbine Auf diesen Beitrag antworten »

Das mit dem Beispiel habe ich gerade mit meinem TR gemacht. Big Laugh Der kann die Regel auch. Aber "unter Druck" setzte ich doch lieber Klammern und berechne Teilschritte. Big Laugh

Bleibt die Frage, wie machen die Programme das...
tigerbine Auf diesen Beitrag antworten »
Nachtrag
Wie geil ist das denn? ROFL

Der Windows TR macht Annahmen über seine Benutzer.
Airblader Auf diesen Beitrag antworten »

Wie Programme das machen?
Naja, sie rechnen nicht gleich stupide aus, sondern warten erst ab.

Bei Programmen/Rechnern, die eine 'Eingabezeile' erstellen, kann man diese Eingabe analysieren und so korrekt rechnen.
Parser gibt es da genug Augenzwinkern

air
tigerbine Auf diesen Beitrag antworten »

Was die so alles können... Was ist denn ein Parser?
 
 
Airblader Auf diesen Beitrag antworten »

Ein Parser ist eine Art Programm, der Eingaben nach bestimmten Mustern analysieren kann.

Beispiel:
Wenn du eine Antwort hier tippst und fett schreibst, so muss dieser Text ja erstmal geparst werden, denn man muss das in eine andere Sprache (HTML) übersetzen, so dass es auch fett angezeigt wird.
Oder auch eine URL wie oben. Der simple [url=...]-Befehl muss ebenfalls in die Sprache des HTML übersetzt werden (<a href="...">...</a>).

Ganz kompliziert wird es zB bei Parsern, die Formulareingaben checken. Gibt man da als E-Mail "aaa.de" ein, so kommt oft, die E-Mailadresse sei ungültig, da sie kein '@' enthält.
Wie man eine E-Mail-Adresse zumindest syntaktisch auf Korrektheit überprüft, das kann von "simpel" bishin zu "hochkomplex" gehen.

Allerdings gibt es Parser, die nochmal eine ganz andere Klasse sind. Da gibt es praktisch keine Grenzen Augenzwinkern
Man denke mal an Programme wie Maple & Co. Die müssen die Eingaben trennen, analysieren, prüfen und zum Schluss auch noch berechnen, wofür wiederum Algorithmen notwendig sind, die so leicht nicht sind.
Numerisch etwas zu berechnen ist einfacher, aber diese Programme können auch symbolisch, also exakt, arbeiten.

air
42 Auf diesen Beitrag antworten »

Hallo,
wie rechnen Taschenrechner überhaupt?

Bei Programmiersprachen werden irgendwelche Formeln oft vorher vom Compiler in die Umgekehrte Polnische Notation übersetzt, denn programmiert man einen Taschenrechner selber, lässt sich mit der Postfix-Notation super arbeiten, die Infix-Notation (also 2+5 statt 2 5 +) ist mühsam.
Der Vorteil der Postfix-Notation/umgehekrte polnische Notation ist, dass man auf Klammern verzichten kann, die Formeln sind eindeutig.
Auch lässt sich diese super auf einer Stack basierten Architektur realisieren, man legt die Zahlen nacheinander auf den Stack und wenn ein Operator wie + kommt, hohlt man die beiden obersten Elemente vom Stack, addiert diese und legt das Ergebnis wieder auf den Stack.


Ansonsten ist es relativ einfach einen Rechnenausdruck in Infix Notation auszuwerten, besonders wenn man dieses rekursiv löst:
1. Man übergibt z.B. 2+(5*(5+2))^2 an die Funktion zum berechnen.
2. Die Funktion durchsucht den Term nach Klammern, werden welche gefunden, werden diese wieder an die Funktion übergebenen. Weiter mit Schritt 2.
3. Es sind keine Klammern mehr vorhanden, es wird erst z.B. * und dann + ausgewertet und entsprechend zurückgegeben.

Also ich übergebe der Funktion 2+(5*(5+2))^2:
Die Funkt. berechnet erst den Teilausdruck 5*(5+2) (nach 2.), da dort wieder Klammern sind, wird wieder 5+2 an die Funktion übergeben. Keine Klammern o.ä., also berechnen und 7 zurückgeben.
Die Funktion hat nun 5*7, keine Klammern mehr, also 35 zurückgeben.
Nun steht dort 2 + 35^2, ^ kommt vor Plus, also 2 + 1225 und dann 1227.


Hoffe das ist in etwa klar.
Calvin Auf diesen Beitrag antworten »
RE: Nachtrag
Zitat:
Original von tigerbine
Wie geil ist das denn? ROFL

Der Windows TR macht Annahmen über seine Benutzer.


*pruuuuust* ROFL Danke tigerbine. Das Wochenende ist trotz schlechten Wetters gerettet ROFL
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »