C++ , Programmierung - Aufgabe

uynngyn

Grünschnabel
Hi alle zusammen ich studiere momentan im 2. Semester an der FH Frankfurt - und bin ne Niete in programmieren, vorallem C++ macht es mir nicht leichter. Ich hab bis den Donnerstag Abgabe Frist. Also Phase 3 muss ich bis dahin fertig haben sollen. Kann jemand mir bitte weiterhelfen?
 

Anhänge

  • 1101DF53-25EF-4E9F-B159-D28BADA1B4FA.png
    1101DF53-25EF-4E9F-B159-D28BADA1B4FA.png
    496,8 KB · Aufrufe: 13

Technipion

Erfahrenes Mitglied
Hallo uynngyn,
schau mal hier:

https://de.wikipedia.org/wiki/Gleitkommazahl#Darstellung
In deinem Zustandsautomaten fehlt ja noch der Teil nach dem Komma. Hier ein paar Beispiele was alles erkannt werden soll:
Code:
1234
12.34
12.34e5
1.12e3
12e3
.00001
0.0
12.
Okay, ein paar davon sind ziemlich exotisch, das kannst du im Testat vielleicht als "unnötige Extemfälle" verbuchen. Trotzdem solltest du zunächst deinen Zustandsautomaten ergänzen, damit wenigstens das hier erkannt wird: +1.23e-04.

Wenn du das gemacht hast, poste hier deinen Zustandsautomaten und deinen aktuellen Code (zunächst für Aufgabe 1), dafür auf die drei Punkte klicken → Einfügen → Code (C++).

Ich will ehrlich sein: Wenn du das bis morgen noch hinkriegen willst musst du dich jetzt wirklich auf deinen ***** hocken.

Gruß Technipion
 

ComFreek

Mod | @comfreek
Moderator
Der gegebene Zustandsautomat scheint falsch zu sein, denn "NaN" ist auch eine gültige IEEE 754 Zahl :)

PS: Da fällt mir ein: IEEE 754 zu String ist nicht trivial. Es existieren Forschungspublikationen dazu, wie man das möglichst effizient und kanonisch hinbekommt. Kanonisch meint, dass z. B. stringify(parse("0.3")) = "0.3" und nicht "0.29999999" oder so.
 

Technipion

Erfahrenes Mitglied
Das Zeitfenster ist jetzt zwar schon abgelaufen, aber hier ist noch ein Link für den interessierten Leser:

http://krashan.ppa.pl/articles/stringtofloat/
Der nette Herr beschreibt sehr schön das Vorgehen beim Einlesen eines double-Wertes. Allerdings fehlt selbst hier noch der Spezialfall "NaN", und ob das kanonisch ist wage ich doch zu bezweifeln :)