我正在尝试找出这段Pascal代码的问题
function Factorial(n: integer): integer;
begin
if n = 0 then
Result := 1
else if n > 0 then
Result := Factorial(n - 1) * n;
end;
运行代码时出现错误 -bash:意外令牌'n:'附近的语法错误
任何人都可以知道为什么吗?我使用的是fpc(免费的pascal编译器),此代码用于其他Pascal编译器吗?
答案 0 :(得分:2)
该代码在fpc中可以正常编译。
根据您引用的错误消息,如@KenWhite所说,听起来您使用的是错误的工具来尝试对其进行编译-bash
是Linux的操作系统外壳,它是{{1} } 错误信息。 bash
不能用于编译Pascal代码。
我建议您下载并使用Lazarus,它是fpc的免费软件IDE,可在Linux和Windows上运行。一旦在系统上安装了Lazarus,就创建一个新项目(从Lazarus的新项目类型列表中创建一个“简单项目”。然后将代码复制/粘贴到项目源的bash
上方,然后保存并编译它并且您将看到Lazarus报告成功编译了该项目。
顺便说一句,代码中有一个遗漏-它仅涵盖n大于或等于零的情况,因此对于n小于零的函数,结果不确定。