PROGRAM If_Case_Uebung;


VAR Zeichen,Wahl : Char;

BEGIN
  REPEAT
    Write('Ein Zeichen eingeben : ');
    ReadLn(Zeichen);
    {Test mit IF's - nicht gerade einfach}
    IF (Zeichen<' ') THEN WriteLn(Zeichen,' ist ein Sonderzeichen')
    ELSE
    BEGIN
      IF (Zeichen>='A') AND (Zeichen<='Z') THEN WriteLn(Zeichen,' ist ein Groábuchstabe')
      ELSE
      BEGIN
        IF (Zeichen>='a') AND (Zeichen<='z') THEN WriteLn(Zeichen,' ist ein Kleinbuchstabe')
        ELSE
        BEGIN
          IF (Zeichen>='0') AND (Zeichen<='9') THEN WriteLn(Zeichen,' ist eine Ziffer')
          ELSE WriteLn(Zeichen,' ist ein Satzzeichen');
        END
      END
    END;
    {Nun das ganze als CASE Fall - erheblich bersichtlicher}
    CASE Zeichen OF
      #00..#31 : WriteLn(Zeichen,' ist ein Sonderzeichen');
      'A'..'Z' : WriteLn(Zeichen,' ist ein Groábuchstabe');
      'a'..'z' : WriteLn(Zeichen,' ist ein Kleinbuchstabe');
      '0'..'9' : WriteLn(Zeichen,' ist eine Ziffer');
      ELSE WriteLn(Zeichen,' ist ein Satzzeichen');
    END;
    Write('Nochmal ?' );
    ReadLn(Wahl);
  UNTIL (Wahl='n') OR (Wahl='n');
END.
