Pascal Unterbereichstyp Wertebereich wird überschritten

Diskutiere und helfe bei Pascal Unterbereichstyp Wertebereich wird überschritten im Bereich Software & Treiber im SysProfile Forum bei einer Lösung; Hallo, ich bin gerade bei den Unterbereichstypen von Pascal. Ich habe folgendes Programm geschrieben, welches nach der eingabe des aktuellen Datums,... Dieses Thema im Forum "Software & Treiber" wurde erstellt von Jack Daniel, 1. Oktober 2009.

  1. Jack Daniel
    Jack Daniel BIOS-Schreiber
    Registriert seit:
    8. Januar 2009
    Beiträge:
    646
    Zustimmungen:
    20
    Name:
    Daniel
    1. SysProfile:
    91764
    2. SysProfile:
    116640

    Hallo, ich bin gerade bei den Unterbereichstypen von Pascal. Ich habe folgendes Programm geschrieben, welches nach der eingabe des aktuellen Datums, den nächsten Tag ausgibt.

    Mein Problem ist allerdings, wenn ich den Wertebereich (z.B. Monat) überschreite, läuft das Programm ohne Fehlermeldung weiter. obwohl ich das Maximum angegeben habe:

    Code:
    var
      Tag   : 1..31;
      Monat : 1..12;
      Jahr  : 2001..2999;
      Letzt : 28..31;
    
    Sollte nicht eigentlich eine Meldung wie "Value Ranger Error" erscheinen?

    Hier mein Programm:

    Code:
    (* Dieses Programm zeigt das Datum des nachfolgenden Tages an.
     *
     * Datum: 01.10.2009                Autor: Jack Daniel
     *)
    
    program Datum;
    {$APPTYPE CONSOLE}
    uses
      sysutils;
    
    var
      Tag   : 1..31;
      Monat : 1..12;
      Jahr  : 2001..2999;
      Letzt : 28..31;
    
    begin
      write('Geben Sie das aktuelle Datum in Form dreier Zahl ein! ');
      readln(Tag, Monat, Jahr);
    
      case (Monat) of
        1, 3, 5, 7, 8, 10, 12 : Letzt := 31;
        4, 6, 9, 11           : Letzt := 30;
        2                     : if (Jahr Mod 4 = 0) then
                                  Letzt := 29
                                else Letzt := 28;
      end; (* of case *)
    
      if (Tag = Letzt) then // Wenn der Tag gleich dem Wert "Letzt" entspricht, ist das Monatsende erreicht.
      begin
        Tag := 1;
        if (Monat = 12) then
        begin
          Monat := 1;
          Jahr := Jahr + 1
        end
        else Monat := Monat + 1;
      end
      else Tag := (Tag + 1);
    
      writeln(' Der n„chste Tag ist lautet: ', Tag, '.', Monat, '.', Jahr);
    
      readln;
    end.
    Gruß Jack Daniel
     
    #1 Jack Daniel, 1. Oktober 2009
  2. Error:Failed connect to localhost:9200; Connection refused
Thema:

Pascal Unterbereichstyp Wertebereich wird überschritten

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden