home *** CD-ROM | disk | FTP | other *** search
- {.pl65}
- {.HEUtility Programs #}
- {see if the user wants to rerun the program}
- function NotAgain: boolean;
- var
- c: char;
- begin
- write('would you like another run? (y/n) ');
- readln(c);
- while not (c in ['y','Y' ,'n','N']) do
- begin
- write('Type y for yes, or n for no: ');
- readln(c);
- end;
- NotAgain := c in ['n','N'];
- end;{NotAgain}
-
- {reads an integer between low and high. Return true and the integer if successful}
- function ReadInt(var i: integer; low, high: integer): boolean;
- var OK: boolean;
-
- begin
- repeat
- {$I-} readln(i);
- OK := (IOresult = 0);
- {$I+};
- if not OK then writeln ('enter an integer ');
- until OK;
-
- ReadInt := (i>=low) and (i<=high);
- end;
-
- {reads reals and return it if successful}
- procedure ReadReal(var x: real);
-
- var OK :boolean;
- begin
- repeat
- {$I-} readln(x);
- OK := (IOresult=0);
- {$I+};
- if not OK then writeln ('enter a real number ');
- until OK;
- end;
- {.pa}
-
- function Nomore:Boolean;
- var
- ch : char;
- begin
- repeat
- Write('Do you want to enter another sample? Enter Y or N ');
- Readln(ch);
- until ch in ['n','N','Y','y'];
- Nomore := ch in ['n','N'];
- end;
-
- procedure ReadOneRecord (var Data: FunRecord; J, VecSize:Integer);
- {reads one record from the console into Data}
- var I: integer;
- begin
- clrscr;
- Writeln ('Enter the X values for sample No. ', J);
- with Data do
- begin
- for I:= 1 to VecSize do
- begin
- Write('enter X(',I,') value = ' );
- ReadReal(X[I]);
- end;
- end;
- end;{procedure ReadOneRecord}
- {.pa}
-
- procedure InitialData(var VecSize,MaxSize: Integer);
- {obtains the vector size}
-
- begin
- repeat
- Writeln ('enter vector size (up to 20 ) ');
- until ReadInt (VecSize,1,MaxSize);
- end;{InitialData}
-
- procedure InitialOutFile;
- begin
- Writeln ('enter output filename = ');
- BufLen := 14;
- Readln (OutFileName);
-
- Assign(OutFile, OutFileName);
- Rewrite(OutFile);
-
- end;{InitialOutFile}
- {.pa}
-
- procedure InitialInFile;
- begin
- Writeln ('enter input filename = ');
- BufLen := 14;
- Readln (InFileName);
-
- Assign(InFile, InFileName);
- Reset(InFile);
- end;{InitialInFile}
-
- function GetDelta :Real;
- var Delta :real;
- begin
- Writeln('enter time increment ');
- ReadReal(Delta);
- GetDelta := Delta;
- end;
-
- procedure PrintRec(var Data :FunRecord; VecSize:Integer);
- {prints a record to printer}
- var
- I: Integer;
- begin
- with Data do
- begin
- Writeln (Lst, Time:6:3);
- for i := 1 to VecSize do
- begin
-
- Write(Lst, X[I]:20);
- If ( I mod 4) = 0 then writeln(Lst);
- end;
- if VecSize mod 4 <> 0 then writeln(Lst);
- end;
- end;
- {.pa}
-
- procedure ReadMatrix (var A : Matrix; ch: char; VecSize: Integer);
- {reads a matrix from the screen}
- var I,J :Integer;
-
- begin
- writeln ('enter the matrix values ',ch,' one entry at a time ');
- for I := 1 to VecSize do
- begin
- for J := 1 to VecSize do
- begin
- write ('enter ',ch,'(',I,',',J,') value = ');
- ReadReal (A[I,J]);
- end;
- end;
- end;
-