ada
Skalartyper
Sök…
Introduktion
I Adas hierarki av typer har elementära typer uppsättningar med logiskt odelbara värden. Bland dessa typer är åtkomsttyperna (pekartyper) och skalartyperna. Skalartyperna kan kategoriseras som uppräkning , karaktär och numerisk . Dessa typer utgör ämnet för detta ämne. Förutom uppsättningarna värden har typer av uppsättningar som är tillämpliga på respektive skalar, t.ex. efterföljare , eller "+" .
Syntax
- typ ... är ...
parametrar
| Ellips | Vad |
|---|---|
| ... (1) | för att få typens namn |
| ... (2) | för att få typens egenskaper med hjälp av nyckelord: delta , siffror , intervall |
Anmärkningar
Alla skalär typ definitioner utom uppräkning och modulära heltal kan omfatta en rad hinder.
En områdesbegränsning anger en nedre gräns och en övre gräns för uppsättningen av värden som ska inkluderas i typen. För fasta typer punkt, specificerar ett intervall är obligatoriska: värden av dessa typer kommer att förstås att vara multiplar av en liten del av två, till exempel, av 1/2 5. Ju mindre dessa fraktioner blir, desto mer exakt är representationen till kostnaden för intervallet som kan representeras med de tillgängliga bitarna.
Ytterligare aspekter av typdefinitioner kan ges, såsom en önskad Size i bitar och andra representativa objekt. Ada 2012 lägger till aspekter av kontraktsbaserad programmering som Static_Predicate .
Uppräkning
type Fruit is (Banana, Orange, Pear);
Choice : Fruit := Banana;
En karaktärstyp är en uppräkning som innehåller en bokstavlig bokstav:
type Roman_Numeral is
('I', 'V', 'X', 'L', 'C', 'D', 'M', Unknown);`
Sjungat heltal
type Grade is range 0 .. 15;
B : Grade := 11;
C : Grade := 8;
Avg : Grade := (B + C) / 2; -- Avg = 9
Modulärt heltal
Det här är "lite fiddling" -typer. De har logiska operatörer också, till exempel xor , och de "sveper runt" vid den övre gränsen, till 0 igen.
type Bits is mod 2**24;
L : Bits := 2#00001000_01010000_11001100# or 7;
Flytpunkt
En flytande punkttyp kännetecknas av dess (decimal) siffror som anger den begärda minimala precisionen.
type Distance is digits 8;
Earth : Distance := 40_075.017;
Fast punkt (vanligt)
En definition av fast punkttyp anger ett delta och ett intervall. Tillsammans beskriver de hur exakt verkliga värden bör approximeras eftersom de representeras av krafter av två, inte använder flytande punkt hårdvara.
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
Fast punkt (decimal)
Decimala fastpunkttyper används vanligtvis vid redovisning. De kännetecknas av både ett delta och ett antal decimaler. Deras aritmetiska operationer återspeglar redovisningsreglerna.
type Money is delta 0.001 digits 10;
Oil_Price : Money := 56.402;
Loss : Money := 0.002 / 3; -- is 0.000