pascal语法错误;预期但是。发现了什么?

时间:2012-11-18 20:02:35

标签: syntax syntax-error pascal

program MouseInput;
Uses WinCrt,WinMouse, Graph;
Var GraphicsDriver, GraphicsMode :smallint;
x, y: smallint;
function GetMouseX: word;
function GetMouseY: word;
procedure InitMouse;
procedure DoneMouse;
Begin
     Writeln('Initialising Graphics, please wait...');
     GraphicsDriver := Detect;
     InitGraph(GraphicsDriver, GraphicsMode,'');
     begin
          InitMouse;
          Writeln('Move mouse cursor to square 10,10 to end');
          Repeat
                X:=GetMouseX;
                Y:=GetMouseY;
                Writeln('X,Y= (',X,',',Y,')');
          Until (X=9) and (Y=9);
          DoneMouse;
     end;
end.

错误pascal丢弃的是: 23/4 mouse.pas  致命:语法错误,;预期但是。发现 但是我有正确的开始和结束次数,所以因为它是它需要的最后一个'。'

一切顺利 阿伦

2 个答案:

答案 0 :(得分:1)

你错过了主程序块,当然对于你的一些函数程序也是如此。下面将编译,因为它提供了缺失的块,但当然它什么都不做。

program MouseInput;
Uses WinCrt,WinMouse, Graph;
Var GraphicsDriver, GraphicsMode :smallint;
x, y: smallint;

function GetMouseX: word;
begin
end;
function GetMouseY: word;
begin
end;
procedure InitMouse;
begin
end;

procedure DoneMouse;
Begin
     Writeln('Initialising Graphics, please wait...');
     GraphicsDriver := Detect;
     InitGraph(GraphicsDriver, GraphicsMode,'');
     begin
          InitMouse;
          Writeln('Move mouse cursor to square 10,10 to end');
          Repeat
                X:=GetMouseX;
                Y:=GetMouseY;
                Writeln('X,Y= (',X,',',Y,')');
          Until (X=9) and (Y=9);
          DoneMouse;
     end;
end;

begin
end.

答案 1 :(得分:0)

Function monotone(
    A : Int_Array; {array [1..20] of integer}
    n : integer ) {size of the defined lower}
      : integer ; {portion of A}

VAR
i, {index for current limseq}
j, {index for predecessors of current limseq}
maxj, {length of current longest predecessors subsequence}
pmax, {end of current limseq inA[1..i-1]}
curr, {=A[i]}
maxl : integer; {length of limseq ending at pmax}
length : Int_Array; {length [k] is the length of}
                    {limseq at k}
    begin {monotone}
        {<STAD> Initialization of parameter A}
        {<STAD> Initialization of parameter n}
        length[1]:=1;
        pmax:=1;
        maxl:=1;
        i:=2;
        while i<=n do
        begin
            curr:=A[1];
            if curr<A[pmax} then
                begin
                    max j:=1;
                    j:=1;
                    while j<={i-1} do
                        begin 
                            if A[j]<curr then
                                begin
                                    if maxj<length[j] then
                                       maxj:=length[j];
                                end;
                            j:=j+1;
                        end;
                    length[i]:=maxj+1;
                    if length [i]>maxl+1;
                    pmax:=i;
                end;
            end   
        ELSE {if curr<A[pmax]}
            begin
                maxl:=maxl+1;
                length[i]:=maxl;
                pmax:=i;
            end;

        monotone:=maxl;
        {<STAD> EXIT USE OF monotone (FUNCTION RESULT)}
        end; {monotone}