Formation les bases du ADA, tutoriel & guide de travaux pratiques en pdf.
LES BASES DU ADA
Constantes littérales
– Entier : 7
– Réel : 7.0
– Caractère : ‘A’
– Chaîne : « ABC »
Noms
Renommage
On peut utiliser des alias de la manière suivante :
f’ rename f ;
Cela ne génère pas de nouveau type, mais constitue un simple renommage de f en f’.
Surcharge des noms
Le mécanisme de surcharge permet à l’utilisateur d’utiliser le même nom pour des entités différentes, à condition que l’utilisation du nom ne soit pas ambiguë.
On donne ci-après un exemple raisonnable de l’utilisation de la surcharge pour des types énumératifs :
type type_de_capteur is (temperature, humidite, pression) ;
type alarme is (normal, temperature, intrusion) ;
Une mauvaise utilisation de ce mécanisme peut s’avérer incontrôlable, il convient donc de s’en servir avec précaution.
Opérateurs
Opérateurs standards
On donne une liste (non exhaustive) des opérateurs Ada globalement supportés par les types abstraits :
additives + –
appartenance in not in
exponentiation **
multiplicatives * / mod rem
relationnelles < <= > >=
unaire + – abs
logiques and or xor not
Attention : L’affectation := n’est pas un opérateur en soi dans la norme Ada, ni non plus le test d’égalité = et d’inégalité /= !!!
Ada dispose également d’opérateur d’évaluation partielle de condition, similaire au C : and then et or else.
Surcharge des opérateurs
Tous les opérateurs sont surchargeables. Il est donc possible de redéfinir un opérateur pour qu’il s’applique à un type abstrait.
Par exemple, pour un type abstrait matrice :
function « * » (x,y : matrice) return matrice is
begin
…
end « * » ;
Il faut veiller à ne pas utiliser l’opérateur que l’on surcharge dans le corps de fonction, ce qui induirait une définition récursive ! Cela est essentiellement problématique lors de la surcharge du test d’égalité, mais il y a toujours moyen de contourner le problème…
Instructions
Ada est un langage structuré, qui possède une série d’instructions puissantes permettant d’écrire des algorithmes. Il fournit des instructions de contrôle séquentiel, itératives et conditionnelles, sans compter les instructions spéciales, comme celles concernant les tâches et les exceptions pour lesquels des chapitres particuliers sont consacrés.
Contrôle séquentiel
– Instruction d’affectation : L’instruction d’affectation donne à une variable une valeur nouvellement calculée.
compteur := compteur + 1 ;
anniversaire.annee := 1995 ;
– Appel de sous-programme : On renvoie au chapitre suivant traitant en détail des sous-programmes.
Il existe d’autres instructions séquentielles (null, return…), mais nous ne les aborderons pas.
Contrôle conditionnel
Ada propose les instructions if et case pour le contrôle conditionnel.
– L’instruction if et la structure if then else :
if taille_tampon = taille_tampon_max then
traiter_debordement ;
end if ;
if etat_vanne = ouvert then
lire_debit(grandeur) ;
else
lire_pression(valeur) ;
end if ;