« Programmation Ada/FAQ/Le Langage Ada » : différence entre les versions
Contenu supprimé Contenu ajouté
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/]] =
=[[../
=[[../Sociétés/|Sociétés et fournisseurs liés à Ada]]=
|