首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Algol60将数组的整数元素作为参数传递-错误类型错误

Algol60将数组的整数元素作为参数传递-错误类型错误
EN

Stack Overflow用户
提问于 2013-10-13 05:58:35
回答 1查看 190关注 0票数 0

我有以下问题。

当我尝试使用arun file.obj (我已经用algol.exe文件编译)来运行代码时

代码语言:javascript
复制
BEGIN

    INTEGER PROCEDURE fun(tab,index,lower,upper);
        INTEGER tab,index,lower,upper;
    BEGIN
        INTEGER t;
        text (1, "Start");
        t := 0;

        FOR index := lower STEP 1 UNTIL upper DO
            t := t + tab;

        fun := t;

    END;

    INTEGER ARRAY t[1:10];
    INTEGER i,result,lower,upper;

    lower := 1;
    upper := 10;

    FOR i := 1 STEP 1 UNTIL 10 DO
        t[i] := i;

    i := 1;

    result := fun(t[i],i,lower,upper);
END FINISH;

我仍然收到错误:

代码语言:javascript
复制
ERROR 3
ADD PBASE PROC LOC
07D4 0886 1    13
083A 0842 0    115

我使用的编译器是RHA (Minisystems)有限公司的"The Rogalgol Algol60“产品。

错误3表示“调用了3个过程,其中实际参数类型和形式参数类型不匹配。”

但我不明白为什么。错误的原因是ti

有人知道我做错了什么吗?

我在dosbox (linux)上编译代码

EN

回答 1

Stack Overflow用户

发布于 2013-10-15 09:30:41

问题是传递给过程的整数数组的索引与他期望的整数不同。我记不清一个整数数组是什么,但我猜它不是整数……我不得不承认我从来没有用过它们,但是记不住为什么。可能是因为像这样的限制。我坚持使用实数组和EBCDIC数组。

你几乎可以通过定义一个新的整数j来修复它;在你调用‘:=’之前插入"j fun ti;“;然后用'j‘而不是ti来调用'fun’。

顺便说一句,你可能想让数组(和'for‘循环)是零相对的。ALGOL基本上是零相对的,我认为如果你顺其自然,它可能会节省内存。

让我知道这是否有帮助...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19339637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档