Recherche…


Introduction

Dans la hiérarchie des types d'Ada, les types élémentaires ont des ensembles de valeurs logiquement indivisibles. Parmi ces types figurent les types d'accès (types de pointeurs) et les types scalaires. Les types scalaires peuvent être classés en énumération , caractère et numérique . Ces types constituent l'objet de ce sujet. Outre les ensembles de valeurs, les types ont un ensemble d'opérations applicables aux scalaires respectifs, tels que le successeur ou "+" .

Syntaxe

  1. typeest

Paramètres

Ellipse Quelle
… (1) recevoir le nom du type
… (2) recevoir les caractéristiques du type en utilisant des mots-clés: delta , chiffres , plage

Remarques

Toutes les définitions de type scalaire, à l'exception de l'entier et des entiers modulaires, peuvent inclure une contrainte d' intervalle .

Une contrainte de plage spécifie une limite inférieure et une limite supérieure de l'ensemble de valeurs à inclure dans le type. Pour les types à virgule fixe, spécifier une plage est obligatoire: les valeurs de ces types seront comprises comme des multiples d'une petite fraction de deux, par exemple, de 1/2 5 . Plus ces fractions deviennent petites, plus la représentation est précise, au prix d'une fourchette pouvant être représentée à l'aide des bits disponibles.

D'autres aspects des définitions de type peuvent être donnés, tels qu'une Size souhaitée en bits et d'autres éléments de représentation. Ada 2012 ajoute des aspects de la programmation basée sur des contrats comme Static_Predicate .

Énumération

type Fruit is (Banana, Orange, Pear);

Choice : Fruit := Banana;

Un type de caractère est une énumération qui inclut un littéral de caractère:

type Roman_Numeral is
    ('I', 'V', 'X', 'L', 'C', 'D', 'M', Unknown);`

Entier Singed

type Grade is range 0 .. 15;

B   : Grade := 11;
C   : Grade := 8;
Avg : Grade := (B + C) / 2;  -- Avg = 9

Entier modulaire

Ce sont les types de “bid fiddling”. Ils ont aussi des opérateurs logiques, tels que xor , et ils «reviennent» à la limite supérieure, à 0 à nouveau.

type Bits is mod 2**24;

L : Bits := 2#00001000_01010000_11001100# or 7;

Point flottant

Un type à virgule flottante est caractérisé par ses chiffres (décimaux) indiquant la précision minimale requise.

type Distance is digits 8;

Earth : Distance := 40_075.017;

Point fixe (ordinaire)

Une définition de type point fixe spécifie un delta et une plage. Ensemble, ils décrivent avec précision la manière dont les valeurs réelles doivent être approximées car elles sont représentées par des puissances de deux, sans utiliser de matériel à virgule flottante.

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

Point fixe (décimal)

Les types de virgule décimale sont généralement utilisés en comptabilité. Ils se caractérisent à la fois par un delta et un nombre de chiffres décimaux. Leurs opérations arithmétiques reflètent les règles de la comptabilité.

type Money is delta 0.001 digits 10;

Oil_Price : Money := 56.402;
Loss      : Money := 0.002 / 3; -- is 0.000


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow