ada
Skalartypen
Suche…
Einführung
In Adas Hierarchie der Typen verfügen Elementartypen über Mengen von logisch unteilbaren Werten. Zu diesen Typen gehören die Zugriffstypen (Zeigertypen) und die Skalartypen. Die Skalartypen können als Aufzählung , Zeichen und numerisch kategorisiert werden . Diese Typen sind das Thema dieses Themas. Zusätzlich zu den Wertesätzen verfügen Typen über einen Satz von Operationen, die auf die jeweiligen Skalare anwendbar sind, z. B. Nachfolger oder "+" .
Syntax
- Typ … ist …
Parameter
| Ellipse | Was |
|---|---|
| … (1) | um den Namen des Typs zu erhalten |
| … (2) | um die Eigenschaften des Typs anhand von Schlüsselwörtern zu erhalten: Delta , Ziffern , Bereich |
Bemerkungen
Alle Definitionen des skalaren Typs mit Ausnahme der Aufzählung und der modularen Ganzzahlen können eine Bereichsbeschränkung enthalten .
Eine Bereichsbeschränkung gibt eine Untergrenze und eine Obergrenze der Menge von Werten an, die in den Typ einbezogen werden sollen. Für Festpunkttypen ist die Angabe eines Bereichs obligatorisch: Werte dieser Typen werden als Vielfache eines kleinen Bruchteils von zwei verstanden, beispielsweise von 1/2 5 . Je kleiner diese Brüche werden, desto genauer ist die Darstellung auf Kosten des Bereichs, der unter Verwendung der verfügbaren Bits dargestellt werden kann.
Weitere Aspekte von Typdefinitionen können angegeben werden, wie etwa eine gewünschte Size in Bits und andere Darstellungselemente. Ada 2012 fügt Aspekte der vertragsbasierten Programmierung wie Static_Predicate .
Aufzählung
type Fruit is (Banana, Orange, Pear);
Choice : Fruit := Banana;
Ein Zeichentyp ist eine Aufzählung, die ein Zeichenliteral enthält:
type Roman_Numeral is
('I', 'V', 'X', 'L', 'C', 'D', 'M', Unknown);`
Singed Integer
type Grade is range 0 .. 15;
B : Grade := 11;
C : Grade := 8;
Avg : Grade := (B + C) / 2; -- Avg = 9
Modulare Ganzzahl
Dies sind die Typen, die etwas "Fummeln" machen. Sie haben auch logische Operatoren wie xor und "wickeln" sie an der oberen Grenze wieder auf 0.
type Bits is mod 2**24;
L : Bits := 2#00001000_01010000_11001100# or 7;
Fließpunkt
Ein Gleitkommatyp wird durch seine Dezimalstellen gekennzeichnet, die die angeforderte Mindestgenauigkeit angeben.
type Distance is digits 8;
Earth : Distance := 40_075.017;
Fixpunkt (normal)
Eine Festpunkttypdefinition gibt ein Delta und einen Bereich an. Zusammen beschreiben sie, wie genau reale Werte angenähert werden sollten, da sie durch Potenzen von zwei dargestellt werden und keine Fließkomma-Hardware verwenden.
Shoe_Ounce : constant := 2.54 / 64.0;
type Thickness is delta Shoe_Ounce range 0.00 .. 1.00;
Strop : Thickness := 0.1; -- could actually be 0.09375
Fixpunkt (dezimal)
Dezimale Festkommatypen werden normalerweise in der Buchhaltung verwendet. Sie sind sowohl durch Delta als auch durch eine Anzahl von Dezimalstellen gekennzeichnet. Ihre arithmetischen Operationen spiegeln die Regeln der Rechnungslegung wider.
type Money is delta 0.001 digits 10;
Oil_Price : Money := 56.402;
Loss : Money := 0.002 / 3; -- is 0.000