我对改变Ada中的类型感到困惑 . 具体接收用户输入,该输入存储为字符串,然后以浮点数或整数形式对其执行操作 . 我的目标是根据用户的起点和终点创建一个对数表,按任意值递增 . 我尝试过如下操作:开始:= Float'Image(开始);我能给你一些帮助,谢谢 .
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;
1 回答
通常,您使用目标类型的名称从一种类型转换为另一种类型,就好像它是一个函数名称:
但这仅适用于兼容类型 . 数组(如字符串)和数字类型永远不兼容,因此您很可能正在寻找LRM 3.5(52) .