AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Umsetzung eines erweiterten Taschenrechners
Thema durchsuchen
Ansicht
Themen-Optionen

Umsetzung eines erweiterten Taschenrechners

Ein Thema von aaaaaaaaaa1 · begonnen am 15. Mär 2017 · letzter Beitrag vom 16. Mär 2017
 
BrightAngel

Registriert seit: 13. Mär 2007
130 Beiträge
 
#10

AW: Anfänger braucht Hilfe XD

  Alt 15. Mär 2017, 22:28
Warum machen eigentlich alle Anfänger einen Taschenrechner, obwohl das eher, sagen wir mal, ein "schwieriges" Ding ist (bzgl. Parser etc) ?
Wobei so ein "Minimalinterpreter" für +*/- auch eine gute Übung sein kann, wenn man sich für sowas interessiert. Ist immernoch "einfach" im Vergleich zu einer vollen "Pipeline" für Quellcodeverarbeitung. Es gibt immerhin nur überschaubare Präzendenzregeln zu beachten.

Also wenn dich sowas wirklich interessiert, kannst du das fürs Erste auch direkt interpretieren. Man kann da auch entsprechend Datenstrukturen aufbauen, aber das dürfte vielleicht wirklich ein wenig weit führen...

Beim direkten interpretieren gehst du einfach die Zeichenkette von Vorne nach Hinten durch und nach jedem Zeichen musst du entscheiden, ob du was verrechnest, oder weiter liest. Kommt eine Ziffer (0-9) dann weißt du sicher, dass du in einer Zahl bist. Das merkst du dir in einer lokalen Variable und erweiterst das, bis ein Rechenzeichen oder das Ende auftaucht.
Je nachdem, ob eine Punkt- oder eine Strichoperation auftaucht musst du die jeweilig Entscheidung treffen und in der Funktion verzweigen. Das ist vom Aufwand überschaubar.


Versuche es dir einfach Stück für Stück vorzustellen. Im Zweifel ist Stift und Papier dabei auch ganz handlich

Wenn du das hinbekommst, kannst du auch noch Klammern einführen, in dem du bei öffnenden Klammern durch Rekursion (erneutes Aufrufen einer der beteiligten Funktionen) "in die Verschachtelung hinabsteigst" und bei schließenden Klammern das "Zwischenergebnis" (= den Wert der Klammerung) die Rekursion wieder "nach oben" zurückgibst.

Mache dir einfach mal ein, zwei, zehn Beispiele. Fange vielleicht erstmal mit dem reduzierten Problem (nur Strich- oder nur Punktrechnung) an und arbeite dich von da an weiter.

Das hier von mir Vorgestellte ist nur ein möglicher Ansatz.

Viel Spaß dir beim Ausprobieren!
Brighty
Do you have the email of god??? --- I have to tell him that I'm happy to be born!
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz