第一次用 Maple 编程:“形式参数的非法使用”

发布于 2024-12-17 14:07:14 字数 458 浏览 2 评论 0原文

我一直收到这个错误。这是代码(用于 GCD):

Euc := proc (a, b) 
if b = 0 then a;
else c := b; 
d := a mod b;
b := d; a := c;
end if;
end proc;

我从不使用 Maple,因为它让我头疼,而且文档是一场噩梦,但这个作业必须全部在 Maple 中完成......如果我在简单的 GCD 上遇到麻烦,我不要看到我在星期三写 RSA 和 El Gamal :s

编辑: 修复它

Euc := proc (a, b) 
if b = 0 then a;
else c := b; 
d := a mod b;
Euc(c,d);
end if;
end proc;

但任何我仍然想知道问题是什么,以防我必须再次做类似的事情。

I keep getting that error. Here's the code (it's for GCD):

Euc := proc (a, b) 
if b = 0 then a;
else c := b; 
d := a mod b;
b := d; a := c;
end if;
end proc;

I never use Maple because it gives me a headache and the documentation is a nightmare, but this assignment has to be done all in Maple... if I'm having trouble with simple GCD, I don't see me writing RSA and El Gamal by Wednesday :s

edit: Fixed it with

Euc := proc (a, b) 
if b = 0 then a;
else c := b; 
d := a mod b;
Euc(c,d);
end if;
end proc;

But any I'd still like to know what the problem was, in case I have to do something similar again.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

任性一次 2024-12-24 14:07:14

您的第一个版本尝试分配给过程的形式参数。这就是问题所在。

假设您调用原始 Euc 并为参数 a 传入 12,为参数 b 传入 8。在 Euc 的主体内,当它在此实例中运行时,a 的计算结果为 12,而 a 的计算结果不是您可以使用的名称做一个作业。当您尝试对 Euc 内的 ab 进行赋值时,您会看到该错误。

Your first version attempted to assign to the formal parameters of the procedure. That was the problem.

Suppose you call your original Euc and pass in 12 for parameter a and 8 for parameter b. Inside the body of Euc, as it runs in this instance, a evaluates to 12 and a does not evaluate to a name to which you can make an assignment. When you try and make an assignment to a or b inside Euc then you see that error.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文