CD: BEGIN
CASE zeichen OF
'M': BEGIN
zustand := FEHL;
END;
'D': BEGIN
zustand := FEHL;
END;
'C': BEGIN
zustand := FEHL;
END;
'L': BEGIN
s := s + 50;
zustand := L1;
END;
'X': BEGIN
zustand := X1;
END;
'V': BEGIN
s := s + 5;
zustand := V1;
END;
'I': BEGIN
zustand := I1;
END;
'=': BEGIN
zustand := ENDE;
END;
END;
Schreibezust(zustand);
END;
XC: BEGIN
CASE zeichen OF
'M': BEGIN
zustand := FEHL;
END;
'D': BEGIN
zustand := FEHL;
END;
'C': BEGIN
zustand := FEHL;
END;
'L': BEGIN
zustand := FEHL;
END;
'X': BEGIN
zustand := FEHL;
END;
'V': BEGIN
s := s + 5;
zustand := V1;
END;
'I': BEGIN
zustand := I1;
END;
'=': BEGIN
zustand := ENDE;
END;
END;
Schreibezust(zustand);
END;
XL: BEGIN
CASE zeichen OF
'M': BEGIN
zustand := FEHL;
END;
'D': BEGIN
zustand := FEHL;
END;
'C': BEGIN
zustand := FEHL;
END;
'L': BEGIN
zustand := FEHL;
END;
'X': BEGIN
zustand := FEHL;
END;
'V': BEGIN
s := s + 5;
zustand := V1;
END;
'I': BEGIN
zustand := I1;
END;
'=': BEGIN
zustand := ENDE;
END;
END;
Schreibezust(zustand);
END;
IX: BEGIN
CASE zeichen OF
'M': BEGIN
zustand := FEHL;
END;
'D': BEGIN
zustand := FEHL;
END;
'C': BEGIN
zustand := FEHL;
END;
'L': BEGIN
zustand := FEHL;
END;
'X': BEGIN
zustand := FEHL;
END;
'V': BEGIN
zustand := FEHL;
END;
'I': BEGIN
zustand := FEHL;
END;
'=': BEGIN
zustand := ENDE;
END;
END;
Schreibezust(zustand);
END;
IV: BEGIN
CASE zeichen OF
'M': BEGIN
zustand := FEHL;
END;
'D': BEGIN
zustand := FEHL;
END;
'C': BEGIN
zustand := FEHL;
END;
'L': BEGIN
zustand := FEHL;
END;
'X': BEGIN
zustand := FEHL;
END;
'V': BEGIN
zustand := FEHL;
END;
'I': BEGIN
zustand := FEHL;
END;
'=': BEGIN
zustand := ENDE;
END;
END;
Schreibezust(zustand);
END;
END; {von CASE}
i := i + 1;
END; {Der WHILE - Schleife}
IF zustand = FEHL THEN
roem2dez := -1
ELSE
roem2dez := s; {Zuweisung der Fuktion}
END;
VAR
beneingabe : STRING;
dezzahl : INTEGER;
BEGIN {Beginn des Hauptprogrammes}
REPEAT
Write('Geben sie die Roemische Zahl ein! ');
Readln (beneingabe);
IF beneingabe <> '-1' THEN BEGIN
dezzahl := roem2dez(beneingabe);
IF dezzahl = -1 THEN
{Es folgt ausgabe fals die eingegebene zahl nicht korrekt ist!}
Writeln('keine korrekte roemische Zahl!!!')
ELSE
Writeln;
Writeln('Dezimazahl: ',dezzahl);
END;
UNTIL beneingabe = '-1'; {bei -1 wird abgebrochen}
END.
Zur Aufgabenstellung
|