Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung |
faecher:informatik:oberstufe:automaten:formale_sprachen:roemische_zahlen:start [06.10.2020 11:32] – [Zahlengrammatik] sbel | faecher:informatik:oberstufe:automaten:formale_sprachen:roemische_zahlen:start [29.09.2024 12:18] (aktuell) – Frank Schiebel |
---|
| |
| |
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://rr.red-dove.com/|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 |}} |
===== Zahlengrammatik ===== | ===== Zahlengrammatik ===== |
| |
Vervollständige die Grammatik für die Römischen Zahlen um Variablen (''V''), Regeln (''P'') und eine Startvariable (''S'') um die formale Beschreibung aller Zahlen von 1 bis 999 zu vervollständigen. | Gib eine Grammatik G=(V,Σ,P,S) für die Römischen Zahlen von 1 bis 999 gemäß des Syntaxdiagramm an. Was ist hier ein geschicktes Alphabet? Was sind die Variablen (''V''), Regeln (''P'') und eine Startvariable (''S'') um die formale Beschreibung aller Zahlen von 1 bis 999 zu vervollständigen. |
| |
++++ Hilfestellung | | ++++ Hilfestellung | |
| |
| * 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}'' 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. |
| ++ Hunderterregel | ''H -> ε | C | CC | CCC | CD | D | DC | DCC | DCCC | CM'' ++ |
| |
| ++ Zehnerregel | ''Z -> ε | X | XX | XXX | XL | L | LX | LXX | LXXX | XC'' ++ |
| |
| ++ Einerregel | ''E -> ε | I | II | III | IV | V | VI | VII | VIII | IX'' ++ |
| |
++++ | ++++ |