home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / TOOLS1_2.ZIP / TOOLS1.PAS next >
Encoding:
Pascal/Delphi Source File  |  1985-09-20  |  3.3 KB  |  148 lines

  1. {.pl65}
  2. {.HEUtility Programs #}
  3. {see if the user wants to rerun the program}
  4. function NotAgain: boolean;
  5. var
  6.    c: char;
  7. begin
  8.    write('would you like another run? (y/n) ');
  9.    readln(c);
  10.    while not (c in ['y','Y' ,'n','N']) do
  11.          begin
  12.               write('Type y for yes, or n for no:  ');
  13.               readln(c);
  14.          end;
  15.    NotAgain := c in ['n','N'];
  16. end;{NotAgain}
  17.  
  18. {reads an integer between low and high. Return true and the integer if successful}
  19. function ReadInt(var i: integer; low, high: integer): boolean;
  20. var OK: boolean;
  21.  
  22. begin
  23.   repeat
  24.     {$I-} readln(i);
  25.     OK := (IOresult = 0);
  26.     {$I+};
  27.     if not OK then writeln ('enter an integer   ');
  28.   until OK;
  29.  
  30.   ReadInt := (i>=low) and (i<=high);
  31. end;
  32.  
  33. {reads reals and return it if successful}
  34. procedure ReadReal(var x: real);
  35.  
  36. var OK :boolean;
  37. begin
  38.   repeat
  39.     {$I-} readln(x);
  40.     OK := (IOresult=0);
  41.     {$I+};
  42.     if not OK then writeln ('enter a real number   ');
  43.   until OK;
  44. end;
  45. {.pa}
  46.  
  47.   function Nomore:Boolean;
  48.    var
  49.      ch : char;
  50.    begin
  51.     repeat
  52.      Write('Do you want to enter another sample? Enter Y or N   ');
  53.      Readln(ch);
  54.     until ch in ['n','N','Y','y'];
  55.     Nomore := ch in ['n','N'];
  56.    end;
  57.  
  58. procedure ReadOneRecord (var Data: FunRecord; J, VecSize:Integer);
  59. {reads one record from the console into Data}
  60. var I: integer;
  61. begin
  62.      clrscr;
  63.      Writeln ('Enter the X values for sample No. ', J);
  64.        with Data do
  65.          begin
  66.            for I:= 1 to VecSize do
  67.             begin
  68.               Write('enter X(',I,') value = ' );
  69.               ReadReal(X[I]);
  70.             end;
  71.           end;
  72.  end;{procedure ReadOneRecord}
  73. {.pa}
  74.  
  75. procedure InitialData(var VecSize,MaxSize: Integer);
  76. {obtains the vector size}
  77.  
  78. begin
  79.   repeat
  80.      Writeln ('enter vector size (up to 20 )  ');
  81.   until  ReadInt (VecSize,1,MaxSize);
  82. end;{InitialData}
  83.  
  84. procedure InitialOutFile;
  85. begin
  86.   Writeln ('enter output filename = ');
  87.   BufLen := 14;
  88.   Readln (OutFileName);
  89.  
  90.   Assign(OutFile, OutFileName);
  91.   Rewrite(OutFile);
  92.  
  93. end;{InitialOutFile}
  94. {.pa}
  95.  
  96. procedure InitialInFile;
  97. begin
  98.   Writeln ('enter input filename = ');
  99.   BufLen := 14;
  100.   Readln (InFileName);
  101.  
  102.   Assign(InFile, InFileName);
  103.   Reset(InFile);
  104. end;{InitialInFile}
  105.  
  106. function GetDelta :Real;
  107. var Delta :real;
  108. begin
  109.   Writeln('enter time increment ');
  110.   ReadReal(Delta);
  111.   GetDelta := Delta;
  112. end;
  113.  
  114. procedure PrintRec(var Data :FunRecord; VecSize:Integer);
  115. {prints a record to printer}
  116. var
  117.   I: Integer;
  118. begin
  119.    with Data  do
  120.       begin
  121.          Writeln (Lst, Time:6:3);
  122.             for i := 1 to VecSize do
  123.                 begin
  124.  
  125.                  Write(Lst, X[I]:20);
  126.                  If ( I mod 4) = 0 then  writeln(Lst);
  127.                 end;
  128.          if VecSize mod 4 <> 0 then writeln(Lst);
  129.      end;
  130. end;
  131. {.pa}
  132.  
  133. procedure ReadMatrix (var A : Matrix; ch: char; VecSize: Integer);
  134. {reads a matrix from the screen}
  135. var I,J :Integer;
  136.  
  137. begin
  138.   writeln ('enter the matrix values ',ch,' one entry at a time ');
  139.   for I := 1 to VecSize do
  140.     begin
  141.      for J := 1 to VecSize do
  142.       begin
  143.        write ('enter ',ch,'(',I,',',J,') value = ');
  144.        ReadReal (A[I,J]);
  145.       end;
  146.     end;
  147. end;
  148.