faecher:informatik:oberstufe:automaten:formale_sprachen:roemische_zahlen:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
faecher:informatik:oberstufe:automaten:formale_sprachen:roemische_zahlen:start [06.10.2020 13:46] – [Zahlengrammatik] sbelfaecher:informatik:oberstufe:automaten:formale_sprachen:roemische_zahlen:start [06.10.2020 16:22] – [Zahlengrammatik] sbel
Zeile 22: Zeile 22:
  
  
-Im folgenden ist ein Syntaxdiagramm zu sehen, um römische Zahlen von 1 bis 999 zu erzeugen - ein solches Diagramm nennt man auch Railroad-Diagramm, [[https://bottlecaps.de/rr/ui|hier]] kann man solche Diagramme erzeugen(( Um das Diagramm unten zu erzeugen, wurde die folgende Grammatik verwendet: ''RoemischeZahl ::= (| C | CC | CCC | CD | D | DC | DCC | DCCC | CM)(|X|XX|XXX|XL|L|LX|LXX|LXXX| XC)(I|II|III|IV|V|VI|VII|VIII|IX)'')).+Im folgenden ist ein Syntaxdiagramm zu sehen, um römische Zahlen von 1 bis 999 zu erzeugen - ein solches Diagramm nennt man auch Railroad-Diagramm, [[https://bottlecaps.de/rr/ui|hier]] kann man solche Diagramme erzeugen(( Um das Diagramm unten zu erzeugen, wurde die folgende Grammatik verwendet: ''RoemischeZahl ::= (| C | CC | CCC | CD | D | DC | DCC | DCCC | CM)(|X|XX|XXX|XL|L|LX|LXX|LXXX| XC)(|I|II|III|IV|V|VI|VII|VIII|IX)'')).
  
 {{ :faecher:informatik:oberstufe:automaten:formale_sprachen:roemische_zahlen:roemischezahl.png |}} {{ :faecher:informatik:oberstufe:automaten:formale_sprachen:roemische_zahlen:roemischezahl.png |}}
Zeile 37: Zeile 37:
  
   * Mache dir klar, dass die einzelnen Abzweige im Sytaxdiagramm für die Hunderter, Zehner und Einer in römischer Schreibweise stehen.   * Mache dir klar, dass die einzelnen Abzweige im Sytaxdiagramm für die Hunderter, Zehner und Einer in römischer Schreibweise stehen.
-  * Ein günstiges Alphabet besteht nur aus den Symbolen, die im Syntaxdiagramm vorkommen, ergänzt um das leere Symbol ++|''Σ={ε,C,CC,CCC,CD,D,DC,DCC,DCCC,CM,X,XX,XXX,XL,L,LX,LXX,LXXX,XC,I,II,III,IV,V,VI,VII,VIII,IX}'' +++  * Ein günstiges Alphabet besteht nur aus den Symbolen, die im Syntaxdiagramm vorkommen, ergänzt um das leere Symbol ++|''Σ={ε,C,CC,CCC,CD,D,DC,DCC,DCCC,CM,X,XX,XXX,XL,L,LX,LXX,LXXX,XC,I,II,III,IV,V,VI,VII,VIII,IX}'' Wenn du Regeln finden möchtest, die die Zahlen aus dem Alphabet mit den einzelnen Römischen Zahlzeichen erzeugen wird es komplizierter, weil du die Besonderheiten der Subtraktionsregel abbilden musst. ++
   * Eine Fundamentale Regel könnte damit lauten ''S -> H Z E''. Damit hat man die Startregel und weitere Variablen eingeführt. Jetzt musst du dir überlegen, wie H, Z und E aus den Symbolen des Alphabets gebildet werden.   * Eine Fundamentale Regel könnte damit lauten ''S -> H Z E''. Damit hat man die Startregel und weitere Variablen eingeführt. Jetzt musst du dir überlegen, wie H, Z und E aus den Symbolen des Alphabets gebildet werden.
 ++ Hunderterregel | ''H -> ε | C | CC | CCC | CD | D | DC | DCC | DCCC | CM''  ++ ++ Hunderterregel | ''H -> ε | C | CC | CCC | CD | D | DC | DCC | DCCC | CM''  ++
Zeile 43: Zeile 43:
 ++ Zehnerregel | ''Z -> ε | X | XX | XXX | XL | L | LX | LXX | LXXX | XC''  ++ ++ Zehnerregel | ''Z -> ε | X | XX | XXX | XL | L | LX | LXX | LXXX | XC''  ++
  
-++ Einerregel | ''E -> I | II | III | IV | V | VI | VII | VIII | IX''  +++++ Einerregel | ''E -> ε | I | II | III | IV | V | VI | VII | VIII | IX''  ++
  
 ++++ ++++