我有一个关于声明性部分、函数和包的查询。我有一个如下所示的包裹。由于 Compute_X1 函数的复杂性,我创建了一个“独立的”来计算这个函数。从 Compute_X1 返回的值是 X1,将在函数 J21 中使用(J21 将 X1 作为第一个参数)。
包装规格:
package Compute_Jacobian is
--compute X1
function Compute_X1 ( Force_Applied, Forcing_Frequency: Long_Float) return Long_Float;
--- use X1 in J21
function J21 ( X1, Forcing_Frequency, Natural_Frequency : Long_Float) return Long_Float;
end Compute_Jacobian;
包体为:
package body Compute_Jacobian is
--compute X1
function Compute_X1 ( Force_Applied, Forcing_Frequency: Long_Float) return Long_Float is separate;
X1 := Compute_X1 ( Force_Applied, Forcing_Frequency);
function J21 ( X1, Forcing_Frequency, Natural_Frequency : Long_Float) return Long_Float is separate;
end Compute_Jacobian;
我已经为 Compute_X1 和 J21 创建了存根。
在编译包体 Compute_Jacobian.adb 时,我收到以下错误消息:
12. X1 := Compute_X1 ( Force_Applied, Forcing_Frequency);
|
>>> statement not allowed in declarative part
我的问题是如何计算 X1 并将其用于计算函数 J21。
我可以尝试直接在“主”代码(此处未显示)中计算 X1(从那里创建“独立”),然后将其用作计算 J21 的正常参数。但是我想要上面的结构(在我上面的帖子中),并在 Compute_Jacobian 包中计算 X1。
非常感谢...