48 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Modula-2
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Modula-2
		
	
	
	
	
	
DEFINITION MODULE RealInOut;
 | 
						|
(*
 | 
						|
  Module:	InOut for REAL numbers
 | 
						|
  From:		"Programming in Modula-2", 3rd, corrected edition, by N. Wirth
 | 
						|
  Version:	$Id$
 | 
						|
*)
 | 
						|
 | 
						|
  VAR Done: BOOLEAN;
 | 
						|
 | 
						|
  PROCEDURE ReadReal(VAR x: REAL);
 | 
						|
  (* Read a real number "x" according to the syntax:
 | 
						|
     
 | 
						|
	['+'|'-'] digit {digit} ['.' digit {digit}]
 | 
						|
	[('E'|'e') ['+'|'-'] digit {digit}]
 | 
						|
 | 
						|
     Done := "a number was read".
 | 
						|
     Input terminates with a blank or any control character.
 | 
						|
     When reading from a terminal, backspacing may be done by either
 | 
						|
     DEL or BACKSPACE, depending on the implementation of ReadString.
 | 
						|
  *)
 | 
						|
 | 
						|
  PROCEDURE ReadLongReal(VAR x: LONGREAL);
 | 
						|
  (* Like ReadReal, but for LONGREAL *)
 | 
						|
 | 
						|
  PROCEDURE WriteReal(x: REAL; n: CARDINAL);
 | 
						|
  (* Write x using n characters.
 | 
						|
     If fewer than n characters are needed, leading blanks are inserted.
 | 
						|
  *)
 | 
						|
 | 
						|
  PROCEDURE WriteLongReal(x: LONGREAL; n: CARDINAL);
 | 
						|
  (* Like WriteReal, but for LONGREAL *)
 | 
						|
 | 
						|
  PROCEDURE WriteFixPt(x: REAL; n, k: CARDINAL);
 | 
						|
  (* Write x in fixed-point notation usign n characters with k digits
 | 
						|
     after the decimal point. If fewer than n characters are needed,
 | 
						|
     leading blanks are inserted.
 | 
						|
  *)
 | 
						|
 | 
						|
  PROCEDURE WriteLongFixPt(x: LONGREAL; n, k: CARDINAL);
 | 
						|
  (* Like WriteFixPt, but for LONGREAL *)
 | 
						|
 | 
						|
  PROCEDURE WriteRealOct(x: REAL);
 | 
						|
  (* Write x in octal words.
 | 
						|
  *)
 | 
						|
 | 
						|
  PROCEDURE WriteLongRealOct(x: LONGREAL);
 | 
						|
  (* Like WriteRealOct, but for LONGREAL *)
 | 
						|
END RealInOut.
 |