You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pascal程序语法错误:参数列表中in/out关键字不被识别

解决Pascal过程参数in/out关键字识别报错的问题

报错原因

in和out是Delphi、Free Pascal等现代Pascal方言引入的参数修饰符,标准Pascal(如Turbo Pascal)并不支持这些关键字,因此编译器会抛出Fatal: Syntax error, "identifier" expected but "in" found的语法错误。

两种解决途径

  • 更换支持的编译器:如果可以切换编译器,使用Free Pascal或Delphi这类支持in/out关键字的现代Pascal环境,原代码无需修改(Free Pascal需注意不要启用严格标准模式,如-MISO)。

  • 修改代码适配标准Pascal语法:

    • 标准Pascal中,in对应的是值传递参数,默认无需额外关键字,直接定义参数即可;
    • out对应的是引用传递的输出参数,用var关键字替代(var参数支持双向传递,能实现out的输出效果)。

修改后的正确代码如下(同时修复了原代码中Loesung2未赋值的bug):

procedure LoesungBestimmen (
            a,b,c : real;
            var Loesung1, Loesung2 : real;
            var gibtLoesung : boolean);
{ bestimmt die Loesungen der Gleichung
a*x*x + b*x + c = 0.0
unter der Vorbedingung: a<>0.0 }

    var
    d : real; {Hilfsvariable}
    
begin
    d := b * b - 4.0 * a * c;
    if (d < 0.0) or (a = 0.0) then
        { nicht loesbar oder Vorbedingung nicht erfuellt }
        gibtLoesung := false
    else
    begin
        gibtLoesung := true;
        d := sqrt (d);
        Loesung1 := - (b - d) / (2.0 * a);
        Loesung2 := - (b + d) / (2.0 * a)
    end
end; { Loesung bestimmen }

内容的提问来源于stack exchange,提问作者Thorsten Dieck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 02:13:17