【问题标题】:Set function Succ(Pascal)设置函数 Succ(Pascal)
【发布时间】:2014-01-01 21:36:53
【问题描述】:

如何在 Pascal 函数中设置 Succ? 我的意思是当我将 Succ 放入代码中时,它会将字符的序号移动到下一个位置。但只有一次。有没有办法,它可以移动三次而不是一次?

我在网上找到了这段代码:

    function Succ (X: ordninal_type): ordninal_type;
    begin
      Ord (Succ (X)) = Ord (X) + 1;
    end;

我的想法是将 + 1 替换为 + 3,但它会给我带来如下错误:

program.lpr(6,36) 错误:找不到标识符“ordninal_type”
program.lpr(19,23) 错误:arg no 的类型不兼容。 1:得到“字符”, 预期“”

那么我应该如何设置函数,所以我会在代码中设置它,比如 -> CHARACTER:=Succ(CHARACTER);?

【问题讨论】:

    标签: function pascal


    【解决方案1】:

    'Succ' 返回当前值之后的后继值(下一个值)。它不能增加超过一个,因为只有一个“下一个值”。

    改用Inc

    Inc(YourVariable, 3);
    

    或者你可以直接在代码中递增:

    YourVariable := YourVariable + 3;
    

    如果您正在处理字符值(数据类型Char),您也可以使用Inc

    Ch := 'A';
    Inc(Ch, 3);  // Ch is now 'D'
    

    【讨论】:

    • Afaik INC 不是 Pascal,而是 TPism。但是现在谁使用 std pascal ;_)
    • @Marco:我不记得了,这就是为什么我给了这两种选择。
    • 我也不太确定另一个,我什至不确定 TP 是否支持 (enum:=enum+5)。但我可能弄错了,在我的大部分旧时代,Modula2 和 ansi pascal 是交织在一起的。
    • 我根本没有提到enum。我专门使用YourVariable指定类型。
    • succ 适用于所有序数。我对枚举的观点是,例如TP, inc() afaik 仅适用于整数类型。
    【解决方案2】:

    该代码与您输入的完全相同吗?如果是这样,请尝试使用“ordinal_type”而不是“ordninal_type”

    我不知道这里是否还有其他问题,但肯定类型应该拼写正确。

    【讨论】:

    • 这不是答案。这是一条评论(“是吗?试试这个。”)。
    • 由于问题中三个提及的每一个都拼错了“ordninal”,因此很可能是原始代码中出现了拼写错误。
    • 它不会让您的评论成为答案。 :-) 您要求发帖人澄清他们是否确实输入了该内容,并建议他们尝试将其更改为其他内容。答案是为所提出的问题提供明确解决方案的陈述。毕竟,它们是分开的东西是有原因的。 :-)
    • 我想你一定是对的。以后我会尽量避免提出可能有用的建议,以免我把它们放在错误的地方。
    • 乔恩,这里没有理由把事情看成个人。我提出了一个建设性的建议。如果您有建议,请在评论中提出(这是它们存在的原因之一)。发布建议作为答案可能会导致否决或删除。我试图保持礼貌并提供建议;如您所见,我没有对您的帖子投反对票。如果您需要更多信息,help center 页面会提供有关 cmets 和答案之间差异的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多