File: CONV16.PS of Tape: Various/Decus/decus-3
(Source file text) 

PROGRAM CONVERSION(INPUT,OUTPUT);

   CONST B=16;
   VAR  X: INTEGER;

   PROCEDURE Q(X: INTEGER);
      BEGIN
        IF X<10 THEN WRITE(X:1)
                ELSE CASE X OF
                        10: WRITE("A");
                        11: WRITE("B");
                        12: WRITE("C");
                        13: WRITE("D");
                        14: WRITE("E");
                        15: WRITE("F");
                     END
        END;

   PROCEDURE P(X: INTEGER);
      BEGIN
        IF X>=B THEN P(X DIV B);
        Q(X MOD B)
      END;

BEGIN
   READ(X);
   WRITE(X,"=");
   P(X)
END.