Comment générer des entiers à l'aide de la méthode Put_Line?
Je ne peux pas obtenir ce programme à compiler, car il ne semble pas à imprimer des variables de type entier long, avec des cordes dans la Put_Line méthode. J'ai regardé le code source en ligne et quand ils le font alors, où vais-je tort. Merci pour votre aide.
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
procedure MultiplicationTable is
procedure Print_Multiplication_Table(Number :in Integer; Multiple :in Integer) is
Result : Integer;
begin
for Count in 1 ..Multiple
loop
Result := Number * Count;
Put_Line(Number & " x " & Count & " = " & Result);
end loop;
end Print_Multiplication_Table;
Number : Integer;
Multiple : Integer;
begin
Put("Display the multiplication of number: ");
Get(Number);
Put("Display Multiplication until number: ");
Get(Multiple);
Print_Multiplication_Table(Number,Multiple);
end MultiplicationTable;`
source d'informationauteur W.K.S | 2011-12-21
Vous devez vous connecter pour publier un commentaire.
Le problème, c'est que vous êtes à l'aide de & avec les chaînes et les nombres entiers.
Essayez l'une des opérations suivantes:
Remplacer
Number
à l'intérieur du paramètre de les mettre avecInteger'Image(Number)
Ou de briser la
Put_Line
dans les composants que vous souhaitez; ex:Vous êtes déjà
with
etuse
de clausesAda.Integer_Text_IO
mais vous n'êtes pas en train de l'utiliser.Changer cela:
:
(J'ai l'habitude de ne pas mettre plusieurs instructions sur une même ligne, mais dans ce cas, c'est logique.)
Noter que
Integer'Image
ajoute entiers non négatifs avec un espace, quelque chose que j'ai toujours trouvé grandement ennuyeux;Ada.Integer_Text_IO.Put
ne pas le faire (sauf si vous le demandez).Vous pourrait définir surchargé
"&"
fonctions, à quelque chose comme ceci:qui ferait de l'original de votre
Put_Line
appel valide, mais les multiplesPut
les appels sont probablement mieux de style.Essayez ceci:
Bâtiment sur la réponse (et un commentaire dans une autre question) de Keith Thompson, voici une Ada programme capable de générer des chaînes de caractères et les nombres entiers avec
&
à l'aide dePut_Line
mais sans les espaces queInteger'Image
serait autrement prepend: