MODULE Sample; PROCEDURE Multiply(VAR z : INTEGER); VAR x, y: INTEGER; BEGIN Read(x); Read(y); z := 0; WHILE x > 0 DO IF z MOD 2 = 1 THEN z := z + y END; y := 2 * y; x := x DIV 2 END; Write(x); Write(y); Write(z); END Multiply; PROCEDURE Divide; VAR x, y, r, q, w : INTEGER; BEGIN Read(x); Read(y); r := x; q := 0; w := y; WHILE w <= r DO w := 2 * w END; WHILE w > y DO q := 2 * q; w := w DIV 2; IF w <= r THEN r := r - w; q := q + 1 END END; Write(x); Write(y); Write(q); Write(r); WriteLn END Divide; END Sample.
Prof. Dr. Reinhard Völler