Pascal 中的函数有问题

Having problems with functions in Pascal

代码如下:

Uses crt;

Type 
  mang = array[1..255] of Integer;

Var 
  N, X, Y : Integer;
  A : mang;

  Procedure Nhap(Var A : mang; Var N : Integer);
  Var 
    i : Integer;
  Begin
    Clrscr;
    Write('So luong phan tu: ');
    Readln(N);
    For i := 1 to N do begin
      Write('Nhap phan tu thu ', i, ': ');
      Readln(A[I]);
    end;
  End;

  Procedure Xuat(Var A: mang; Var N: Integer);
  Var  
    i : Integer;
  Begin
    For i := 1 to N do write(A[i], ' ');
    Writeln;
  End;

  Function KTMangTang(Var A : mang; Var N : Integer) : Boolean;
  Var 
    i, j : Integer;
  Var 
    kt : Boolean;
  Begin
    kt := True;
    i := 0;
    For i := 1 to N-1 do 
      for j := i+1 to N do 
        if A[i] > A[j] then 
          kt := False;
    KTMangTang := kt;
  End;

  Function KTMangDX(Var A : mang; Var N : Integer) : Boolean;
  Var 
    i, j : Integer;
  Var 
    kt : Boolean;
  Begin
    kt := True;
    i := 0;
    For i := 1 to N do 
      for j := N-i downto 1 do 
        if A[i] <> A[j] then 
          kt := False;
    KTMangDX := kt;
  End;

begin
  Nhap(A, N);
  Xuat(A, N);
  if KTMangTang then 
    Writeln('Mang tang') 
  else 
    Writeln('Mang khong tang');
  if KTMangDX then  
    Writeln('Mang doi xung')  
  else 
    Writeln('Mang khong doi xung');
  readln;
End.

布尔值 KTMangTang 和 KTMangDX 应该可以工作,但它们返回了这些错误:

免费的 Pascal 编译器版本 3.2.2 [2021/05/15] for i386

Florian Klaempfl 和其他人版权所有 (c) 1993-2021

目标 OS:用于 i386 的 Win32

正在编译34.pas

34.pas(53,4) 错误:为调用“KTMangTang”指定的参数数量错误

34.pas(28,10) 错误:找到声明:KTMangTang(var mang;var SmallInt):Boolean;

34.pas(55,4) 错误:为调用“KTMangDX”指定的参数数量错误

34.pas(39,10) 错误:找到声明:KTMangDX(var mang;var SmallInt):Boolean;

34.pas(58,4) 致命:编译模块时出现 4 个错误,正在停止

严重:编译中止

错误:C:\FPC.2.2\bin\i386-Win32\ppc386.exe 返回错误退出代码

我尝试不使用“kt”布尔变量,但它返回了其他错误。

P/S:我使用带有免费 Pascal 编译器(32 位)的 Visual Studio 代码。如果有人知道如何安装 64 位 Free Pascal IDE,请帮助我。

您已将 KTMangTangKTMangDX 声明为采用两个参数并返回 BOOLEAN 的函数。您已经 调用了 他们 没有 参数。这是行不通的。编译中的错误专门告诉你这个。