我对改变Ada中的类型感到困惑。具体接收用户输入,该输入存储为字符串,然后以浮点数或整数形式对其执行操作。我的目标是根据用户的起点和终点创建一个对数表,按任意值递增。我尝试过如下操作:开始:=浮动'图像(开始);我能给你一些帮助,谢谢。
with Ada.Text_IO, Ada.Float_Text_IO, Ada.Numerics.Elementary_Functions;
use Ada.Text_IO, Ada.Float_Text_IO, Ada.Numerics.Elementary_Functions;
procedure log_table is
Start, Stop, Increment, temp : Float;
begin -- Prompt for input
Put_Line("To print a table of logarithms,");
Put(" enter the start, stop, and increment values: ");
Get(Start); Get(Stop); Get(Increment);
loop
exit when (Start > Stop);
Put("The logarithm of");
Put(Start);
Put(" is ");
Put_Line( log(Start, 10.0) );
Start := Start + Increment;
end loop;
end log_table;
所以现在代码运行了...我将在下面发布更改的代码部分。我所做的就是将Put_Line函数更改为Put函数,然后添加一个New_Line函数。这有什么用呢?根据我的理解,Put_Line和Put之间的唯一区别是添加了一个' \ n'到最后。我们将不胜感激。
loop
exit when (Start > Stop);
Put("The logarithm of ");
Put(Start);
Put(" is ");
Put( log(Start, 10.0));
New_Line;
Start := Start + Increment;
end loop;
答案 0 :(得分:4)
通常,您使用目标类型的名称从一种类型转换为另一种类型,就好像它是一个函数名称一样:
A := Some_Integer_Type (3.41);
但这仅适用于兼容类型。数组(例如字符串)和数字类型永远不兼容,因此您很可能正在寻找LRM 3.5(52)。