Hardware Reference
In-Depth Information
subtype tWochenende is tWochentag range 6 to 7 ;
Ein Untertyp wird bei der Typprüfung wie sein Basistyp behandelt und erbt
alle zulässigen Operationen, Funktionen etc. Aber es dürfen ihm keine Werte
außerhalb seines Wertebereichs zugewiesen werden.
Beispiel 3.3: Bei welcher der nachfolgenden Anweisungen findet die Analyse oder
die Simulation einen Fehler?
variable wt: tWochentag;
variable we: tWochenende;
...
A1: we := wt;
A2: wt := ((we+ 4 ) mod 7 ) + 1 ;
A1: Die Zuweisung eines Objekts mit dem Basistyp an ein Objekt mit einem Un-
tertypen ist erlaubt (kein Analysefehler). Einen Simulationsfehler gibt es, wenn der
Wert der Variablen für den Wochentag nicht im Wertebereich für das Wochenende
liegt.
A2: Der Ausdruck auf der rechten Seite hat wie das Zuweisungsziel den Basistyp
»tWochentag« und liegt für jeden darstellbaren Wert von »we« im zulässigen Bereich.
Statt mit einer Untertypvereinbarung kann die Wertebereichsbeschrän-
kung auch bei der Vereinbarung der Datenobjekte erfolgen, z.B.
variable Wochenende: tWochentag range 6 to 7 ;
variable zaehler:natural range 0 to 99 ;
variable Wahrscheinlichkeit:real range 0.0 to 1.0 ;
Typkonvertierung
Eine typfremde Zuweisung, Zuordnung etc. verlangt eine Typkonvertierung.
Zahlentypen sind untereinander eng verwandt. Für eng verwandte Datentypen
wird mit der Typvereinbarung implizit eine gleichnamige Konvertierungsfunk-
tion bereitgestellt, die Ausdrücke mit einem anderen Zahlentyp in eben diesen
umwandelt:
apfel_2 := tAepfel(birne); -- Konvertierung in tAepfel
Bei der Konvertierung von Werten mit Nachkommastellen in ganzzahlige Wer-
te wird gerundet. Bei der Konvertierung von einem ganzzahligen Typ in einen
Typ mit Nachkommastellen ändert sich nur die rechnerinterne Zahlendarstel-
lung variable i, j:integer:= 35 ;
variable r:real:= 12.67 ;
...
i :=integer(r); -- Zuweisung von 13
r :=real(j);
-- Zuweisung von 35.0
Search WWH ::




Custom Search