====== Römische Zahlen ====== Eine Sprache L wird beschrieben durch eine Grammtik G G=(V,Σ,P,S) === (1) === Erläutere, wofür die Bezeichnungen ''V,Σ,P,S'' stehen. ===== Zahlen als Sprache ===== Die Römer haben Zahlen anders geschrieben als wir das heute tun. Sie haben also eine andere Sprache zur Darstellung von Zahlen benutzt. Wenn du Genaueres wissen möchtest, findest du [[https://www.roemische-zahlen.net/|auf dieser Seite]] mehr Infos. {{ :faecher:informatik:oberstufe:automaten:formale_sprachen:roemische_zahlen:clock-697166_640.jpg?400 |}} === (2) === Was ist das Alphabet Σ der Sprache für die römischen Zahlen von 1 bis 999? Schreibe das Alphabet auf. Was sind Wörter der Sprache? - gib Beispiele an. Was sind Aneinanderreihungen von Sprachsymbolen, die keine Worte sind? Gib Beispiele an. ===== Syntaxdiagramm ===== 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 |}} * Mache dir klar, wie das Syntaxdiagramm zu lesen ist. * Welche Funktion hat jeder der drei funktionalen Abschnitte? * Verfolge den Pfad für die Zahlen 7, 54, 212, 687, 501 und schreibe diese Zahlen in römischer Darstellung. ===== Zahlengrammatik ===== 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 | * 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'' ++ ++++ ---- Dieser Abschnit ist auf Basis der Seite https://www.inf-schule.de/sprachen/sprachenundautomaten/formalesprachen/einfuehrung_formalesprachen/beispiel_roemischezahlen in inf-schule.de entstanden. Lizenz: [[https://creativecommons.org/licenses/by-sa/4.0/|CC-BY-SA]]