[Playlisten] [Impressum und Datenschutzerklärung]

13C.2 Zahlenlisten parsen mittels endlichem Automaten, Teil 1


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

jetzt noch mal zu den endlichen Automatenfeinen Stetbestehenswenn ichmal einfacher als am Montagwenn ich so einen Ausdruck eingelesen habelauter Zahlendezimal Punkt dazwischensowasmindestens eine Ziffer vor dem Kommagezimmert Punktund ich würde das jetzt gerne umwandelnwollen das es in irgend ein Reh eingetragenwird also wenn ich auch schon ein Ray hätteins?? wareinfach nursowas?? ich habe schon eine Rayleigh von mir aus mit dreizehn Einträgenund ich hab auch schon Anzahlan Zahlen vorgesehen?? ich möchte jetzt diese Zeichenkettezerlegen in echte Zahlenund die Zahlen in meine Räder einschmeißenzum Schluss sollen Anzahl aber stehen bezahlen es warendafür geht's natürlich hübsche Bibliotheksfunktionenstellen sich vor es wäre nicht so einfach stellen sich vor sie mir kompliziertereKommandos noch eingebaut dannwird die Bibliotheksfunktionschon nicht ganz so leicht zu verwenden seinund wenn Sie das war mit einemAutomatenhinzukriegenein Automat der diese Ziffern hier erkennen kann den Punkt Leerzeichenganz beliebig viele Leerzeichen stehenerkennen kannund während ererkenntauch diese Zahlen einsammeltamMontag ?? das auf Gemahlsmit?? mit Syntaxdiagrammdas soll sich hier nicht um SyntaxdiagrammPerson immer direkt mit dem endlichen Automaten das hinzukriegenich habe offensichtlich ein Zustandder die Zahlen vor dem Komma darstelltein Zustand mit den Zahlen nach dem Kommaund dann müsste man mir passendhin und her bastelnKomma schon mal auf also garantiert ein Zustandzahlvor Kommaund einen Zustand Zahlen nach Kommawennich ?? Zustand den Zahl vor Kommaund es kommteineZiffervon null bis neundann bleibe ich in dem Zustandden Rest überlegen circa dreißigsowenn dieser dezimal Punkt kommt's dann gehe ich aus dem Zustandin den Zustandund dann sammle ich hier hinten weiter die Ziffern ein?? hinten komme ich raus wenn er Leerzeichenkommtimmer das jetzt mal das klar Beistrich aber Leerzeichen dannsoein komm ich da hinten rauskönnte abernoch ein Leerzeichen kaum das es der Ärger ist eine sicher direkter vorne reines könnt ihr noch ein Leerzeichen kommendas heißt hier brauche ich irgendwie einen Extrazustandin dem ich auf Leerzeichen warteundaußerdem komm ich raus wenn ich mir Ziffer habeunddieser Zustand hier in dem ich auf Leerzeichen warte ist auch mein Startzustanddem manchmal so mit Einfall rein klassische ArtZustandsdiagrammezu malendass es Mainzer Startzustandhier starte ich dannkriegte Ziffer Komma da einsZiffer Ziffern sieben Ziffer Ziffernirgendwann kriechenPunktkomm ihre einzige Ziffern sieben Ziffer Ziffernirgendwann Krieger LeerzeichenjederFrauin allen anderen Fällenist irgendein Unsinn passiertundwas ist der Endzustandwie muss dieses ganze Ding enden wo in welchem Zustand muss dieses ganze Ding enden damit wirklich was ordentliches passiert iststelle gerade fest ist alles als Endzustandokayam wenn sie den hier zum Endzustand erklären zu einem Endzustand erklären heißt das was erlaubt ististvor ganz Zahlen Leerzeichen Vorgang zahlen und die letzte Zahl wirdmit einem Punkt abgeschlossenoder mit ein Punkt ?? Ziffern abgeschlossen okaydas kann ein Zustand sein wäre in Ordnungich kannam Ende vielleicht ?? Leerzeichen haben dannden Ordner zum Endzustandoder ich könnte Zahlen haben ohne dezimal Punktam Endeund überlege das es glaube ich keine gute Idee weilzwischendrin würde ich keineZahlen und Zimmer Punkt erlauben wenn ich den hier auch noch seinem Endzustand machen würdewäre es möglich das die letzte Zahlkein dezimal Punkt ??gehe durch die hierdurch ?? wir stehenkein dezimal Punkt es ?? komisch wenn nur die letzte Zahl kein dezimal Punkt haben könnte so machen dasso muss jede Zahl eine dezimal ein dezimal Punkt habegerade überlegenwas es auch noch nichtperfektweiles wäre möglich jetzt dass die??es wäre möglich das die letzte Zahlan dezimal Punkt hataber keine weitere Zifferhörige direkt aufEnde mit ein dezimal Punkt und es ist SchlussEndzustandes wäre komisch weil vorher ist das nicht erlaubt vorher war ich immer noch mindestens eine weitere Zahlamüberlegen Komma dassdas eleganteste um es einfach zu halten ist zu sagen wie das wird ein Endzustandaber ich erlaube auchzahlensonst die nicht mit einem dezimal Punkt aufhörenund diese Verbindung hier und diese Verbindung müsste ich immer ein dezimal Punkt haben außer bei letzten Saales will komischist es auf diese Verbindung hierkann ich immerZahl und dezimal Punkt habe mich Sammleziffern ein und geht direkt weiterund dezimal Punkt wäre es auch möglich Punktdas sinddrei verschiedene Zuständedeutlich einfacher als am Montagnunbenenne ich die mal dienen nicht malVO undendenbei uns Leerzeichen im SLdrei verziehen viele Schutz zuständig und natürlichFehlerdas habe ich noch gar nicht eingemauert erklärt sich von selbstden Zustand V den Zustand in den L und Fehlerund gucke jetzt was passiert in diesen einzelnen Zuständenwas kann passieren nicht ganz Ziffern haben von null bis neunich kann dezimal Punkt habenich kann ein Leerzeichenhabenund ich kann alles andere habenwennich im Fehlerzustandbin will ich natürlich immer im Fehlerzustandbleiben egal was passiertmännlichen Zustand hier Zahl vor Komma bin und ich kriegeeine Ziffer bleibe ich im Zustand sah vor Komma wenn ich ein dezimal Punkt Kriege ich in den Zustand nach Kommawenn ich an tägigenZustand Lalles andere istfalschwenn ich in diesem Zustand bin kriege eineneine Ziffer bleibe ich in diesem Zustandwenn ich ein Leerzeichen FriedrichGegner elein Punkt ist falsch an dieser Stelle mich zweimal dezimal Punkt drin alles anderes auch falschwenn ich beim Leerzeichenbinkomme ich weiter mit Leerzeichen komm ich weiter dann bleibe ich beim Leerzeichenund mit Ziffer komme ich weiter dannnicht in den Zustand V Ziffer komme ich weiter und komm in den Ziffer von Jaffa und alles andere wäre falsch sodas er jetzt ein endlicher Automat dazugestellt Mischehenund das kann man jetzt gerade mal ins Problemchen rein schmeißenalso ich baueeineenum für das SchattenwurfVund N und LF so hießen dieinStand zuStandund jetzt brauche ich diese Tabelleübersetztin der Tabelle stehen Zuständedrinnen ich nenne sie mal Tee von wegenzwanzigstens Übergängevom Format herist sie vier Euro undlustigerweise auch vier breitesZufall ?? Business muss dasselbe sein?? runter sind die Zahl der Zuständequer sindZahl derEreignisseist beides viergleichwenn ich den Angebeartigkeitden letzten hier auch nochausdiesem enum generieren aber ich will's nicht übertreiben ?? ich zu bezahlen wirklich mal reindas wären meineGrößen der Tabelleunterschreibe ich jetzt wann was drin steht in der Tabelle V N LF steht in der ersten ZeileFrauFseine war klar das Feuer nur alles mit Fehler der Plattenfehlernun in der zweiten Zeile N F LLFund in der dritten Zeile VFLLdass wir die Tabelleundnun gehe ich ganz dreist inner for-Schleifedadurch ich merke mir den Zustand in dem ich gerade bin Zustand sozustande sitzt ein Typeine Zahl von null bis drei eigentlich nur nochder AnfangszustandwarEltern ich mich recht erinnereListe Anfangszustandschwierigdamit nur for-Schleifedrüberum sich mir gar nichtje über diese Zeichenkette ich guck einfarbig durch die Zeichenkette durchgegangen wenn die Bedingung ist also ?? ist es von ihm nicht die nullmit der Bedingungmerklichdurch meine Zeichenkettedurch wendenund jetzt stopfe ich dadurchnicht gucke ob das aktuelle Zeicheneine Ziffer istNamen hier ?? esvon mir ist das aktuelle Zeichen eine Ziffer also ist dasetwa doch schöner aber ganze so machen ist das in der Zahl zwischenderNummerder Ziffern null und zwischen der Nummerder NummerZifferneunProwenn das der Fall ist dann bin ichhier in dieser Spaltein der Spalte Nummer nullkopiert als in meiner Tabelle nach was in der Nummer null steht der neue Zustand wird seinwas in dieser Tabellein der Spalte null gestanden hatwas schreiben Sie da in Spalte null aus dieser Tabellewas muss ich jetzt hinschreibenokay okay okay anin der Tabelle guck ich nach ?? möchteBeistrich in welcher Zeile ich bin das ist ja der Zustand in dem ich gerade bin das ist die Zeileich möchte in der vorderstenSpalte die vorderste Spalte ist dafür zuständigwas passiert wenn irgendwas zwischen null und neun kommt das weiß ich jetzt in der vordersten Spalte möchte ich nachgucken was ich tun sollder Vordersspaltealso da muss man null stehen damit ich die vorderste Spalte habeund die Nummer der Zeile ist die Nummer des aktuellen ZustandsPunkt in der Zeile null wenn man Zustand an die Nummer null hat der Zeile drei Zustand nur dreiso grabe ich dadurchdas warwenn eineneine Ziffer kommtwennder dezimal Punkt kommtdann mach ich dasselbe aber ich nehme das was in der ersten Spalte stehthier steht ja in der ersten Spalte steht ja das was passiert in der dezimal Punkt kommtmich recht erinneredezimal Punkt kommt das Leerzeichenalso ?? noch mal dasselbe hieristdas Leerzeichenkomplette LeerzeichenLeerzeichenund alles anderewas passiert wenn irgend ein anderesZeichen kommt ganz ?? noch mit Els dahinter hängenes passiert irgendwashältst dann nämlich das Observer zwei vergessen und da diedreisoich nehme das aus der Spalte Nummer eins wenn danndezimal Punkt com ich nehme solche Spalte Nummer zwei wenn Leerzeichen der steht als Spaltsnummer drei wenn irgendwas versteht irgendwas anders da stehtin diesem Sinne hier ?? Nummer null eins zwei dreies müsse dazu manchmal durchlaufen ja die Zahl noch nicht eingesammeltaber müsste das mich mal durchlaufendensich das schon mal anguckenStandsindSchwankungenwelche Zustand man hier zum Schluss endetnetterweise muss ich ja nicht prüfen welche Zustand ich Ende jeder Zustand in dem ich Ende ist ein korrekter?? guckenob ich da zumindestInfo an Kommaich meinen Cursor hier unsere Ausführung des Cursorroh N mit F nicht gutdas sollte nicht sein ?? soll jährlich mit einer fehlerendenKomma ?? Komma zu Fuß nachdas passiert mirso ich bin in ZustandL sie Leerzeichendas erste was ich habeextra noch am you edxerste was ich habe eine ZifferEich Komma der Ziffer hierjaeine Zifferob ich nach bei T vonZ nullbei den Zifferneingabenwo muss ich hinsehen auf welchen Zustand bin ich jetzt gegangenVwar doch gut vor dem Komma sollte das doch heißenich noch ?? Ziffer sehr schönwas aus wenn ich wie viele Ziffern ich hatte vor dem Komma drei Ziffer vor dem Kommanein funktionierteh gleich dreiokay jetzt kommt der dezimal Punktichkenne Zustand L das ist aber falschObstDezimalpunktesgekommen und ich bin in den Zustand L gegangen?? GesetzZ warvor dem Kommadann eins und ich bin in den Zustand L gegangen ist diese Tabelle das ist docheher da ist was faulgenauVNLF war muss auch in der Lage sein Sachen abzuschreiben VN LF also V NL F vier natürlich auchStoppVinLso ist der Versuch??herausgenommen Komma sowieso durch?? nach dem Komma so sieht es ausokay ist nicht ganz fertig gewordenwas man jetzt machen würde istwährend man die Ziffern hier einsammelt kann man jadas Wasser bisher hatte mal zehn nehmenunddann einfach diese neue Ziffer darauf addieren am Endeschwierig ist wenn ich nach dem Komma bin da muss sie müssen aufpassen wo ich sie neun Ziffern anhängenund wenn ich fertig bin bin ich Leerzeichen gefunden haben wirfür dich die neu gefundene Ziffer in das Gerät schmeißt natürlich ein Doppelgerät überhauptund weiter zu