

                 PROGRAM USEPLOT;{$e+,i+}

{THIS PROGRAM WAS WRITTEN AS A SHELL,TO USE THE PROCEDURE PLOT }
{TWO ARRAYS ARE FILLED FROM THE CONSOLE,AND THEN PLOTTED,ONE AS}
{A FUNCTION OF THE OTHER.THE 'INCLUDE' STATEMENT IS UTILIZED.  }

                 LABEL 30;  {END OF PROGRAM,USED TO ABORT.}

                 CONST LAST = 100;

                 TYPE  DATA = ARRAY[1..LAST] OF REAL;

                 VAR
                    I,N:INTEGER;
                    TIME:DATA;
                    AMPLITUDE:DATA;
                    ZERO,TOOBIG,TOOSMALL,STOP:BOOLEAN;
                    ANSWER:CHAR;

{$IPLOT.PAS }

BEGIN
 REPEAT
  WRITELN('YOU MAY ENTER UP TO 100 PAIRS OF DATA POINTS.');
  WRITELN('AMPLITUDE WILL BE PLOTTED AGAINST TIME');
  WRITELN('HOW MANY DATA PAIRS DO YOU WISH TO ENTER?');
  WRITELN('ENTERING 0 WILL TERMINATE PROGRAM.');
  N:=0;
  REPEAT
    READ(I);
    ZERO:=I=0;
    TOOBIG:=I>100;
    TOOSMALL:=I<1;
    IF ZERO THEN GOTO 30;
    IF TOOBIG OR TOOSMALL THEN  WRITELN('PLEASE TRY AGAIN.')
    ELSE N:=I
  UNTIL N <> 0;
  WRITELN('PLEASE ENTER FIRST DATA PAIR:AMPLITUDE FIRST,THEN TIME.');
  WRITELN('SEPARATE AMPLITUDE AND TIME BY A SPACE.');
  I:=0;
  REPEAT
    I:=I+1;
    READLN(AMPLITUDE[I],TIME[I]);
    IF I<N THEN WRITELN('NEXT DATA PAIR')
    ELSE WRITELN('THANK YOU.')
  UNTIL I=N;
  N:= -N;{TO TELL PLOT NOT TO LOOK FOR YCALC}
  PLOT(N,TIME,AMPLITUDE,AMPLITUDE);
  WRITELN('DO YOU WISH TO TRY AGAIN (Y/N)?');
  READ(ANSWER);
  STOP:=ANSWER<>'Y';
 UNTIL STOP;
30:
END.
