home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast.iso / pcmag / vol8n02.zip / DEFAULT.PAS < prev    next >
Pascal/Delphi Source File  |  1988-10-06  |  2KB  |  78 lines

  1. PROGRAM DefaultDemo;
  2. (*by Knut Fogelqvist, Molndal, Sweden.*)
  3.  
  4. VAR
  5.   Length, Width, Height, Volume : Real;
  6.   UnitString                    : STRING;
  7.  
  8.   FUNCTION RealIn(Default : Real) : Real;
  9.   (*Input Real number, return Default if
  10.     user just pressed Enter.  Can easily
  11.     be modified to use a different numeric
  12.     type, e.g. Extended, Double etc*)
  13.   VAR
  14.     NewIn : STRING;
  15.     Stat  : Integer;
  16.     Temp  : Real;
  17.   BEGIN
  18.     REPEAT
  19.       Temp := Default;
  20.       Stat := 0;
  21.       ReadLn(NewIn);
  22.       IF NewIn <> '' THEN
  23.         Val(NewIn, Temp, Stat);
  24.       IF Stat <> 0 THEN
  25.         BEGIN
  26.           Write(#7, 'Erroneous input, character no ');
  27.           Write( Stat:2, ', write again! ');
  28.         END;
  29.     UNTIL Stat = 0;
  30.     RealIn := Temp;
  31.   END;
  32.  
  33.   FUNCTION StringIn(Default : STRING) : STRING;
  34.   (*Input a string, return Default if user
  35.     just pressed Enter*)
  36.   VAR NewIn, Temp : STRING;
  37.   BEGIN
  38.     Temp := Default;
  39.     ReadLn(NewIn);
  40.     IF NewIn = '' THEN
  41.       StringIn := Temp
  42.     ELSE
  43.       StringIn := NewIn;
  44.   END;
  45.  
  46. BEGIN
  47. (* Here initial default values are assigned to
  48.    the variables used in the example, which just
  49.    computes the volume of a box.*)
  50.   Length := 108.0116441;
  51.   Width := 51.02108781;
  52.   Height := 9.072974990;
  53.   UnitString := 'centimeter';
  54.   REPEAT
  55.     Write('Length of box = ', Length:15:5, ' ');
  56.     Write(UnitString, '. New length = ');
  57.     Length := RealIn(Length);
  58.  
  59.     Write('Width of box  = ', Width:15:5, ' ');
  60.     Write(UnitString, '. New width  = ');
  61.     Width := RealIn(Width);
  62.  
  63.     Write('Height of box = ', Height:15:5, ' ');
  64.     Write(UnitString, '. New height = ');
  65.     Height := RealIn(Height);
  66.     Volume := Length*Width*Height;
  67.     WriteLn;
  68.     Write('The Volume is = ', Volume:15:5);
  69.     WriteLn(' cubic ', UnitString, 's');
  70.     WriteLn;
  71.  
  72.     Write('Unit = ', UnitString, ' (end this ');
  73.     Write('program with "end"). New unit = ');
  74.     UnitString := StringIn(UnitString);
  75.     WriteLn;
  76.   UNTIL UnitString = 'end';
  77. END.
  78.