varalpha:Integer;procedure Test2(var A:Integer);forward;{Test2被说明为前置过程}procedure Test1(var A:Integer);
begin
A:=A-1;
if A>0 then
test2(A); {经前置说明,调用未执行的过程Test2}
writeln(A);
end;procedure Test2(var A:Integer);{经前置说明的Test2的执行部分}
begin
A:=A div 2;
if A>0 then
test1(A); {在Test2中调用已执行的过程Test1}
end;     {此处抱错:  [Error] Unit1.pas(51): Illegal character in input file: ' ' ($A1A1)  }
procedure TForm1.Button1Click(Sender: TObject);
begin
Alpha:=15; {给Alpha赋初值}
Test1(Alpha); { 第一次调用Test1,递归开始}
end;  
请各位大虾指点

解决方案 »

  1.   

    test1(A); {在Test2中调用已执行的过程Test1}
    end;     {此处抱错:  [Error] Unit1.pas(51): Illegal character in input file: ' ' ($A1A1)  }
    有非法的字符;删除后重新输入看看如何;
      

  2.   

    procedure Test2(var A:Integer);{经前置说明的Test2的执行部分}
    begin
    A:=A div 2;
    if A>0 then
    test1(A); {在Test2中调用已执行的过程Test1}
    end;  //该行在end;的后面多了一个全角的空格,把它删除就行了。
      

  3.   

    test1(A); {在Test2中调用已执行的过程Test1}
    end;     {此处抱错:  [Error] Unit1.pas(51): Illegal character in input file: ' ' ($A1A1)  }
    有非法的字符;删除后重新输入看看如何;
      

  4.   

    在你出错位置上
    test1(A); {在Test2中调用已执行的过程Test1}
    end;     {此处抱错:  [Error] Unit1.pas(51): Illegal character in input 
    的end;后面有一个非法的字符,把他删了就可以了。
      

  5.   

    下面的可以,输入A为0
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        Alpha:Integer;
        procedure Test1(var A:Integer);
        procedure Test2(var A:Integer);
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Test1(var A:Integer);
    begin
    A:=A-1;
    if A>0 then
    test2(A);
    ShowMessage(IntToStr(A));
    end;procedure TForm1.Test2(var A:Integer);
    begin
    A:=A div 2;
    if A>0 then
    test1(A);
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
    Alpha:=15; {给Alpha赋初值}
    Test1(Alpha); { 第一次调用Test1,递归开始}
    end;end.
      

  6.   

    varalpha:Integer;procedure Test2(var A:Integer);forward;{Test2被说明为前置过程}procedure Test1(var A:Integer);
    begin
    A:=A-1;
    if A>0 then
    test2(A); {经前置说明,调用未执行的过程Test2}
    showmessage(inttostr(a))
    end;procedure Test2(var A:Integer);{经前置说明的Test2的执行部分}
    begin
    A:=A div 2;
    if A>0 then
    test1(A); {在Test2中调用已执行的过程Test1}
    end;    {此处抱错:  [Error] Unit1.pas(51): Illegal character in input file: ' ' ($A1A1)  }procedure TForm1.Button1Click(Sender: TObject);
    begin
    Alpha:=15; {给Alpha赋初值}
    Test1(Alpha);
    end;复制过去看看
      

  7.   

    {此处抱错:  [Error] Unit1.pas(51): Illegal character in input file: ' ' ($A1A1)  }是因为在那行end后面有非法的空格,你把光标放在分号后面,然后用按del几下除了这个错误以外,还有writeln(A);,这个在用button驱动的事件里面是不可以的
    换成showmessage(inttostr(A));