У вас уже есть предложения with
и use
для Ada.Integer_Text_IO
, но вы на самом деле не используете их.
Измените это:
Put_Line(Number & " x " & Count & " = " & Result);
на это:
Put(Number); Put(" x "); Put(Count); Put(" = "); Put(Result); New_Line;
(я обычно не помещал бы несколько операторов в одну строку, но в этом случае это имеет смысл.)
Обратите внимание, что Integer'Image
добавляет неотрицательные целые числа спространство, то, что я всегда находил очень раздражающим;Ada.Integer_Text_IO.Put
этого не делает (если вы не попросите об этом).
Вы можете определить перегруженные "&"
функции, что-то вроде этого:
function "&"(Left: String; Right: Integer) return String is
begin
return Left & Integer'Image(Right);
end "&";
function "&"(Left: Integer; Right: String) return String is
begin
return Integer'Image(Left) & Right;
end "&";
что сделает ваш исходный вызов Put_Line
действительным, но несколько вызовов Put
, вероятно, будут лучше.