Program Display;

USES
    crt;

VAR
   N3,N2,N1,N0:Boolean;

PROCEDURE a;
BEGIN
     gotoxy(1,1);
     Write('----------');
END;

PROCEDURE b;
VAR
   y:Integer;
BEGIN
     FOR y:=2 TO 5 DO
     BEGIN
          gotoxy(10,y);
          Write('|');
     END;
END;

PROCEDURE c;
VAR
   y:Integer;
BEGIN
     FOR y:=6 TO 9 DO
     BEGIN
          gotoxy(10,y);
          Write('|');
     END;
END;

PROCEDURE d;
BEGIN
     gotoxy(1,10);
     Write('----------');
END;

PROCEDURE e;
VAR
   y:Integer;
BEGIN
     FOR y:=6 TO 9 DO
     BEGIN
          gotoxy(1,y);
          Write('|');
     END;
END;

PROCEDURE f;
VAR
   y:Integer;
BEGIN
     FOR y:=2 TO 5 DO
     BEGIN
          gotoxy(1,y);
          Write('|');
     END;
END;

PROCEDURE g;
BEGIN
     gotoxy(1,5);
     Write('----------');
END;

BEGIN
   clrscr;

     FOR N3:= False TO True DO
         FOR N2:= False TO True DO
             FOR N1:= False TO True DO
                 FOR N0:= False TO True DO
   BEGIN

     IF N1 THEN
        IF N0 THEN
           IF (N3 or N2) THEN a  ELSE
        ELSE
            a
     ELSE
        IF N0 THEN
           a
        ELSE
            IF (N3 or N2) THEN a ELSE;


     IF (N1 or not(N2)) THEN  b  ELSE ;


     IF N1 THEN
        c
     ELSE
        IF N0 THEN
           IF (N2 or N3) THEN c ELSE
        ELSE
            c;


     IF N1 THEN
        IF N0 THEN
           IF (N2 or N3) THEN d ELSE
        ELSE
            IF not(N2 or N3) THEN  d ELSE
     ELSE
        IF N0 THEN
           IF not(N3) THEN  d  ELSE
        ELSE
            IF (N2 or N3) THEN  d ELSE;


     IF N1 THEN
        IF N0 THEN
           IF (N2 or N3) THEN  e ELSE
        ELSE
     ELSE
        IF N0 THEN
            e
        ELSE;


     IF N1 THEN
        IF N0 THEN
           f
        ELSE
     ELSE
        IF N0 THEN
           IF (N2 or N3) THEN  f  ELSE
        ELSE
            IF (N2 or N3) THEN f ELSE;

     
     IF N1 THEN
        IF N0 THEN
            g
        ELSE
            IF not(N2 or N3) THEN  g ELSE
     ELSE
        IF N0 THEN
           g
        ELSE
            IF (N2 or N3) THEN g;

     ReadLn;
     ClrScr;
   END
END.



    Source: geocities.com/v.iniestra/apuntes/dis_log

               ( geocities.com/v.iniestra/apuntes)                   ( geocities.com/v.iniestra)