ada
Scalaire typen
Zoeken…
Invoering
In Ada's hiërarchie van typen hebben elementaire typen sets van logisch ondeelbare waarden. Onder deze typen bevinden zich de toegangstypen (aanwijzertypen) en de scalaire typen. De scalaire typen kunnen worden gecategoriseerd als opsomming , karakter en numeriek . Deze typen vormen het onderwerp van dit onderwerp. Naast de sets met waarden, hebben typen bewerkingen die van toepassing zijn op de respectieve scalars, zoals opvolger , of "+" .
Syntaxis
- type ... is ...
parameters
| ellipsis | Wat |
|---|---|
| ... (1) | om de naam van het type te ontvangen |
| ... (2) | om de kenmerken van het type te ontvangen met behulp van trefwoorden: delta , cijfers , bereik |
Opmerkingen
Allerlei scalar definities uitzondering telling en modulaire integers kan een bereik beperking.
Een bereikbeperking geeft een ondergrens en een bovengrens aan van de set waarden die in het type moeten worden opgenomen. Voor vaste punttypen is het opgeven van een bereik verplicht: waarden van deze typen worden opgevat als veelvouden van een kleine fractie van twee, bijvoorbeeld van 1/2 5 . Hoe kleiner deze fracties worden, hoe preciezer de weergave, ten koste van het bereik dat kan worden weergegeven met behulp van de beschikbare bits.
Verdere aspecten van typedefinities kunnen worden gegeven, zoals een gewenste Size in bits en andere representatieve items. Ada 2012 voegt aspecten van contractgebaseerde programmering toe, zoals Static_Predicate .
Opsomming
type Fruit is (Banana, Orange, Pear);
Choice : Fruit := Banana;
Een karaktertype is een opsomming met een letterlijk karakter:
type Roman_Numeral is
('I', 'V', 'X', 'L', 'C', 'D', 'M', Unknown);`
Gezongen geheel getal
type Grade is range 0 .. 15;
B : Grade := 11;
C : Grade := 8;
Avg : Grade := (B + C) / 2; -- Avg = 9
Modulair geheel getal
Dit zijn de "beetje prutsen" types. Ze hebben ook logische operatoren, zoals xor , en ze "omwikkelen" aan de bovengrens, weer naar 0.
type Bits is mod 2**24;
L : Bits := 2#00001000_01010000_11001100# or 7;
Drijvend punt
Een drijvend punttype wordt gekenmerkt door zijn (decimale) cijfers die de minimaal vereiste precisie aangeven.
type Distance is digits 8;
Earth : Distance := 40_075.017;
Vast punt (gewoon)
Een definitie van het type vast punt specificeert een delta en een bereik. Samen beschrijven ze hoe reële waarden precies moeten worden benaderd, aangezien ze worden voorgesteld door machten van twee, zonder zwevende punt-hardware.
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
Vast punt (decimaal)
Decimale typen vaste punten worden meestal gebruikt in de boekhouding. Ze worden gekenmerkt door zowel een delta als een aantal decimale cijfers. Hun rekenkundige bewerkingen weerspiegelen de boekhoudregels.
type Money is delta 0.001 digits 10;
Oil_Price : Money := 56.402;
Loss : Money := 0.002 / 3; -- is 0.000