ada
Tipi scalari
Ricerca…
introduzione
Nella gerarchia dei tipi di Ada, i tipi elementari hanno serie di valori logicamente indivisibili. Tra questi tipi vi sono i tipi di accesso (tipi di puntatore) e i tipi scalari. I tipi scalari possono essere classificati come enumerazione , carattere e numerico . Questi tipi formano l'argomento di questo argomento. Oltre agli insiemi di valori, i tipi hanno un insieme di operazioni applicabili ai rispettivi scalari, come ad esempio successore o "+" .
Sintassi
- tipo ... è ...
Parametri
| ellissi | Che cosa |
|---|---|
| ... (1) | per ricevere il nome del tipo |
| ... (2) | per ricevere le caratteristiche del tipo usando le parole chiave: delta , cifre , intervallo |
Osservazioni
Tutte le definizioni di tipo scalare, tranne l'enumerazione e gli interi modulari possono includere un vincolo di intervallo .
Un vincolo di intervallo specifica un limite inferiore e un limite superiore dell'insieme di valori da includere nel tipo. Per i tipi di punti fissi, specificare un intervallo è obbligatorio: i valori di questi tipi saranno intesi come multipli di una piccola frazione di due, ad esempio di 1/2 5 . Più piccole diventano queste frazioni, più precisa è la rappresentazione, al costo dell'intervallo che può essere rappresentato utilizzando i bit disponibili.
Ulteriori aspetti delle definizioni di tipo possono essere forniti, come una Size desiderata in bit e altri elementi di rappresentazione. Ada 2012 aggiunge aspetti della programmazione basata su contratto come Static_Predicate .
Enumerazione
type Fruit is (Banana, Orange, Pear);
Choice : Fruit := Banana;
Un tipo di carattere è un'enumerazione che include un carattere letterale:
type Roman_Numeral is
('I', 'V', 'X', 'L', 'C', 'D', 'M', Unknown);`
Integer cantato
type Grade is range 0 .. 15;
B : Grade := 11;
C : Grade := 8;
Avg : Grade := (B + C) / 2; -- Avg = 9
Intero modulare
Questi sono i tipi "un po 'giocherellona". Hanno anche degli operatori logici, come xor , e si "avvolgono" al limite superiore, di nuovo a 0.
type Bits is mod 2**24;
L : Bits := 2#00001000_01010000_11001100# or 7;
Virgola mobile
Un tipo a virgola mobile è caratterizzato da cifre (decimali) che indicano la precisione minima richiesta.
type Distance is digits 8;
Earth : Distance := 40_075.017;
Punto fisso (ordinario)
Una definizione del tipo di punto fisso specifica un delta e un intervallo. Insieme, descrivono in che modo i valori reali dovrebbero essere approssimati in quanto sono rappresentati da potenze di due, non usando hardware in virgola mobile.
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
Punto fisso (decimale)
I tipi decimali a virgola fissa vengono generalmente utilizzati nella contabilità. Sono caratterizzati sia da un delta che da un numero di cifre decimali. Le loro operazioni aritmetiche riflettono le regole della contabilità.
type Money is delta 0.001 digits 10;
Oil_Price : Money := 56.402;
Loss : Money := 0.002 / 3; -- is 0.000