1
votes
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.

The error pascal is throwing out is: 23 / 4 mouse.pas Fatal: Syntax error, ; expected but . found But i have got the correct number of begins and ends so becuase it is the last one it needs a '.'

All the best Arran

2

2 Answers

1
votes

You're missing the main program block, and then of course same for some of your functions procedures. The below will compile as it supplies the missing blocks, but of course it will do nothing.

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.
0
votes
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}