帕斯卡尔。单向列表。环

时间:2015-05-25 17:23:11

标签: pascal

这是一本书中的示例程序。我不能停止"而不是eof"环。我试图插入程序"使用crt;"," const CheckEof:boolean = true"并按" ctrl + Z"在跑步时,它不起作用。

Program P123;
uses crt; {My insertion}
type Adresacelula=^Celula;
   Celula=record
   Info:string;
   Urm: AdresaCelula;
   end;
var P, Q, R: AdresaCelula;
s:string;
i: integer;

const CheckEOF: boolean=true; {My insertion}

Procedure Create;

 begin
   p:=nil;
   write ('s='); readln (s);
   new (r); r^.Info:=s; r^.Urm:=nil;
   p:=r; q:=r;
   write ('s=');
       while not eof do {Here is the loop i need to stop}
        begin
          readln (s); write ('s=');
          new (r); r^.Info:=s; r^.Urm:=nil;
          q^.Urm:=r; q:=r;
        end;
end;
 Procedure Display;
   begin
    r:=p;
   while r<>nil do
       begin
        writeln (r^.Info);
        r:=r^.Urm;
       end;
     readln;
   end;

 begin
  Create;
  Display;
 end.

1 个答案:

答案 0 :(得分:0)

要使示例正常工作,请删除行

const CheckEOF: boolean=true; {My insertion}

并在主程序中的CheckEOF:=true;调用之前插入Create;。然后,当您按Ctrl-Z时程序终止。

您的代码声明了一个新变量CheckEOF,而您可能希望更改CheckEOF单位的crt