Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Taschenrechner mit unendlich Klammerebenen in VB 08

Frage Entwicklung

Mitglied: qqwice

qqwice (Level 1) - Jetzt verbinden

06.07.2009, aktualisiert 12:11 Uhr, 5436 Aufrufe, 2 Kommentare

Hallo,
Ich hab jetzt mit Visual Basic 2008 angefangen und versuche jetzt seit einiger Zeit einen Taschenrechner zu Programmieren der Punkt vor Strich Rechnung beherrscht und auf jeden Fall unendlich viele Klammerebenen.
Was ich bisher rausgefunden habe ist das man das Verfahren der umgekehrten polnischen Notation (upn) anwenden muss.
siehe: http://www.bullhost.de/u/umgekehrte-polnische-notation.html
Dabei ist zu beachten dass man Stacks verwendet, da diese anders als Arrays bei den jeder Wert über ein Index abgerufen werden kann, wird bei einem Stack immer nur der oberste Wert angegeben.
Meine Frage an euch wäre ob mir jemand mit einem Structogram helfen könnte oder was auch gut wäre einen Lösungsansatz eventuell mit Quellcode ausschnitt.

Ich bedanke mich schon mal im voraus und hoffe das ihr mir weiterhelfen könnt.
Mitglied: jhinrichs
06.07.2009 um 12:35 Uhr
Warum muss es UPN sein? Aber das Schreiben eines Parsers für UPN ist natürlich deutlich einfacher, als für die übliche Notation, das ist schon richtig.
Der Ablsufplan für einen UPN-Rechner ist eigentlich ganz einfach: (habe gerade keinen grafischen Editor zur Hand, daher in Textform)
01.
Ist Eingabe eine Zahl/Speicherabruf? 
02.
Wenn ja: => auf den Stack 
03.
Wenn nein: 
04.
  ist Eingabe eine Operation mit einem Operanden? 
05.
  Wenn ja: => Oberstes Strackelement holen, Operation anwenden, Ergebnis auf den Stack 
06.
  Wenn nein: 
07.
    ist Eingabe eine Operation mit zwei Operanden?  
08.
    Wenn ja: => die beiden oberen Elemente holen, Operation anwenden, Ergebnis auf den Stack 
09.
...etc
Bitte warten ..
Mitglied: miniversum
06.07.2009 um 13:04 Uhr
Hier mal noch ne ganz grobe Beschreibung wie es gehen kann:
Es gibt eine funktion zum berechnen.
In dieser Funktion werden 2 Zahlen mit einander verrechnet.
kommt ein klammerausdruck wird der ausdruck in der klammer rekursiv von der berechenfunktion an die berechenfunktion weitergegeben.
Du musst also imemr die Klammern finden, und nach Möglichkeit von innennach außen arbeiten.
Hast du das Ergebnis einer Klammer wird in dem Textstring der Klammerausdruck durch das Ergebnis ersetzt.
Also z.B. so:
"2*(1+3)"
"(2*(1+3))" -> berechne Klammer -> "1+3" = "4"
Ersetze Klammerausdruck
"(2*4)" -> berechne Klammer -> "2*4" = "8"
"8' -> Kine Klammer mehr vorhanden -> Ergebniss gefunden
Bitte warten ..
Ähnliche Inhalte
Humor (lol)
Taschenrechner in IOS kaputt!
Beitrag von 16 Kommentare

Information von Lochkartenstanzer zum Thema Humor (lol)

Visual Studio
VB: Batchprogramm: Resultat zurückgeben an VB Form (Textfeld)
Beitrag von 7 Kommentare

Frage von PixL86 zum Thema Visual Studio

VB for Applications
VB Skript für mehrere Batch Befehle
Beitrag von 37 Kommentare

Frage von freshman2017 zum Thema VB for Applications

VB for Applications
VB-Script per Aufgabenplanung
Beitrag von 2 Kommentare

Frage von S4kar97 zum Thema VB for Applications

Neue Wissensbeiträge
Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Beitrag von 2 Kommentare

Information von admtech zum Thema Administrator.de Feedback

Vmware

VMware Desktopprodukte sind verwundbar

Beitrag von

Information von Penny.Cilin zum Thema Vmware

Datenschutz

Session-Replay: Viele beliebte Webseiten zeichnen jegliche Texteingabe auf

Beitrag von 2 Kommentare

Information von Penny.Cilin zum Thema Datenschutz

Sicherheit

Zufällige Speicherzuweisung: Windows-Bug hebelt Sicherheitsmechanismus ASLR aus

Beitrag von 1 Kommentar

Information von Penny.Cilin zum Thema Sicherheit

Heiß diskutierte Inhalte
Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail
Beitrag von 24 Kommentare

Frage von ahstax zum Thema Visual Studio

Windows Netzwerk
Netzwerk Neustrukturierung
Beitrag von 16 Kommentare

Frage von IT-Dreamer zum Thema Windows Netzwerk

Windows Server
RDP macht Server schneller???
Beitrag von 16 Kommentare

Frage von JaniDJ zum Thema Windows Server

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Beitrag von 15 Kommentare

Frage von Akcent zum Thema Windows 10