The representation of the value of e depends on the type of e. 

12.3.1. Char Write. If e is of type Char, then Wr ite (f ,e: m) IS equivalent to the statement 

begin for J := 1 to m - 1 do Write (f, I '); fi := e; Put (f) end 

where all occurrences of f denote a single variable, and where J denotes a new (not otherwise accessible) integer variable. 

12.3.2. Integer Write. If e is of type Integer, then Write(f/e:m) writes a I _I if e < 0, followed by the decimal representation of abs (e) . Preceding spaces are written if needed to write m characters. 

12.3.3. Real Write. If e is of type Real, Wr i te (f ,e: m: n) writes a fixed-point representation with n digits after the decimal point; and Wr i te (f ,e: m) writes a floating-point representation. The operator "* *" means "raised to the power." 

12.3.3.1. Fixed-point representation. Let w be zero if e is zero, otherwise let w be the absolute value of e rounded and then truncated to n decimal places. Let d be 1 if w < 1, otherwise let 10 * * (d -1) <= w < 10* * d. d is the number of digits to the left of the decimal point. Lets = ord((e < 0) and (w <> 0)). Therepresentationis negative if s = 1. Let k = (s + d + 1 + n); k is the number of non-blank characters written. 

If k < m, then m-k preceding spaces are written. The fixed-point representation of e consists of k characters: 

(a) I - I if s = 1 I 

(b) the d decimal digits of the integer part of w, 

(c) I • I , 

(d) the n most significant decimal digits of the fractional part ofw. 

12.3.3.2. Floating-point representation. The number of digits that are to occur in the scale factor ("E part") of the floating-point representation is implementation-defined; let x denote this number. Let k be the larger of m and x+6. The number of significant digits to be written is k-x-4, with one digit before the decimal point and d digits after (thus d = k-x-S). Let wand s be zero if e is zero. If e is non- 

