package body Universum is

  function Kilometer_zu_Meter (km: Kilometer) return Meter is
  begin
    return Meter (Masszahl (km)) * 1000.0;
  end Kilometer_zu_Meter;

  function Meter_zu_Kilometer (m: Meter) return Kilometer is
  begin
    return +Reell (m / 1000.0);
  end Meter_zu_Kilometer;

  -- Restliche Umwandlungen

  function Sin (X: Grad) return SI_Einheit is
  begin
    return SI_Einheit (Grad'(Sin (X)));  -- 3
  end Sin;

  -- Restliche trigonometrische Funktionen und ihre Umkehrungen

end Universum;


Anmerkung zum Code:

3 Bei der Implementierung der trigonometrischen Funktionen ist auf Grund der Überladung eine Qualifizierung Typkennung'(Ausdruck) notwendig. Grad'(Sin (X)) bezeichnet den Sinus, der den Argumententyp von X hat und den Typ Grad als Ergebnis liefert. Da der Funktionsrumpf nur aus einer Typumwandlung besteht, ist die Verwendung des pragma Inline (in der Paketspezifikation) angebracht. Dieses Pragma sollte auch für alle Umwandlungsfunktionen wie Kilometer_zu_Meter spezifiert werden.


Zurück zum Text.