« Programmation Ada/FAQ/Le Langage Ada » : différence entre les versions

Contenu supprimé Contenu ajouté
Tavernierbot (discussion | contributions)
m Robot : Changement de type cosmétique
Ligne 12 :
Ce document peut être librement copié et distribué en respectant les conditions de la [[w:fr:GNU_FDL|Licence de documentation libre GNU]].
 
= [[../Généralités/]] =
=Le langage Ada=
 
== Comment transformer un entier en chaîne de caractères? ==
 
En Ada, les types scalaires tels que les entiers, les réels et les
Ligne 29 :
end Euros;
 
== Comment transformer une chaîne de caractères en entier? ==
 
Comme indiqué dans la question précédente, les types scalaires
Ligne 37 :
A : constant Integer := Integer'Value ("10"); -- A vaut 10
 
== Comment obtenir le code ASCII d'un caractère? ==
 
Dans ce cas également, des attributs sur le type Character existent:
Ligne 48 :
Y : constant Character := Character'Val (66); -- Y vaut 'B'
 
== Est-il possible de définir un nouvel attribut (par exemple Somme, qui ferait la somme de plusieurs valeurs d'un type donné)? ==
 
Non. Seuls certains attributs existants peuvent être modifiés, mais en
aucun cas un nouvel attribut ne peut être ajouté par l'utilisateur.
 
== Comment obtenir le minimum (resp. maximum) de deux entiers? ==
 
Les types numériques disposent d'un attribut Min (resp. Max) qui permet
Ligne 66 :
end Double_Maximum;
 
== Comment saisir une chaîne de caractères de taille variable? ==
 
On peut utiliser Ada.Text_IO.Get_Line, qui prend deux paramètres en
Ligne 93 :
end;
 
== Pourquoi après un Ada.Text_IO.Get_Line le curseur ne se trouve-t-il pas en début de la ligne suivante? ==
 
Si l'utilisateur rentre le nombre de caractères maximum fixé par le
Ligne 101 :
nouvelle entrée ou une nouvelle sortie.
 
== Pourquoi Get ou Get_Line après un Get n'attendent rien et se comportent comme si j'avais tapé uniquement sur la touche entrée? ==
 
La version de Get permettant de saisir un type scalaire ne consomme que
Ligne 112 :
Get_Line et entre New_Line et Skip_Line.
 
== Quel est le caractère de fin de chaîne? ==
 
Aucun. Pour le langage C, une chaîne est uniquement une suite de
Ligne 120 :
arbitraire.
 
== Comment récupérer la ligne de commande? ==
 
En utilisant le paquetage standard Ada.Command_Line, qui offre
notamment les fonctions Argument_Count et Argument.
 
== Comment effacer l'écran? ==
 
Cette question est trop imprécise: on n'utilisera pas la même méthode
Ligne 131 :
pas de méthode normalisée en Ada.
 
== Comment tracer un trait? ==
 
Même réponse que dans la Q : ==ci-dessus: la question n'est pas==
assez précise.
 
== Comment effacer l'écran sous Windows? ==
 
Il est possible d'utiliser le paquetage NT_Console.
 
== Comment libérer un pointeur? ==
 
Il faut instancier la procédure générique Ada.Unchecked_Deallocation.
Ligne 157 :
end Foo;
 
== Doit-on vraiment instancier Ada.Unchecked_Deallocation pour chaque type? ==
 
Oui. Cependant, en utilisant la programmation «class-wide», il est
Ligne 163 :
avec une seule instanciation.
 
== Existe-t-il un ramasse-miettes pour Ada? ==
 
Très peu d'implémentations proposent un ramasse-miettes[1]. En règle
Ligne 173 :
est défini.
 
== Comment créer une chaîne de caractères de taille inconnue a priori? ==
 
Il faut initialiser la chaîne de caractères au moment de sa création,
Ligne 183 :
U : constant String := "bonjour"; -- U est de taille 7 et de contenu non modifiable
 
== Est-il possible de gérer les chaînes de caractères comme en C? ==
 
Oui, c'est possible, en utilisant un type «pointeur sur chaîne de
Ligne 189 :
solutions.
 
== Est-il possible de gérer des chaînes de caractères de taille variable? ==
 
Il existe un type standard Ada.Strings.Unbounded.Unbounded_String qui
Ligne 196 :
Ada.Strings.Bounded.Bounded_String est généralement plus efficace.
 
== Existe-t'il un équivalent en Ada de la fonction realloc() du C, qui permet de changer la taille allouée pour une zone mémoire ? ==
 
Non. Toutefois, la possibilité d'utiliser une valeur initiale pour la
Ligne 213 :
Free (Old_S);
 
== Que signifie le pragma Pure? ==
 
Cette directive de compilation signifie que le paquetage auquel elle
Ligne 220 :
pas d'un quelconque état interne ou externe.
 
== Comment convertir une chaîne de caractères en minuscules? ==
 
Il faut utiliser la fonction To_Lower du paquetage
Ada.Characters.Handling.
 
== Comment faire des opérations bit à bit? ==
 
En Ada, les opérations bit à bit se font sur les types modulaires. Les
Ligne 231 :
Interfaces définit des opérations de décalage supplémentaires.
 
== Est-il possible d'obtenir des tranches de tableaux multi-dimensionnels? ==
 
Non.
 
== Comment attendre un temps donné? ==
 
Il faut utiliser l'instruction delay suivie d'un nombre de secondes en
Ligne 243 :
delay 2.5; -- Attend 2,5 secondes
 
== Comment effectuer un tirage aléatoire? ==
 
Ada propose plusieurs paquetages de gestion de nombres aléatoires. Le
Ligne 268 :
end Roulette;
 
== Où se trouvent les fonctions mathématiques? ==
 
Les fonctions mathématiques élémentaires (comme la racine carrée) se
Ligne 279 :
Ada.Numerics.Generic_Elementary_Functions.
 
== Comment augmenter la taille de la pile d'une tâche? ==
 
La directive de compilation Storage_Size permet de donner la taille, en
Ligne 294 :
end T;
 
== Comment écrire un paquetage générique prenant, en paramètre, une classe dérivée d'une classe donnée? ==
 
L'Exemple 12 montre un paquetage générique prenant en paramètre une
Ligne 307 :
end Generic_Test;
 
= [[../Bibliothèques/]] =
=[[../Compilateurs_Et_outilsCompilateurs Et outils/|Compilateurs et outils]]=
=[[../Sociétés/|Sociétés et fournisseurs liés à Ada]]=