home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l210 / 1.ddi / ANSWERS.ARC / ANS_358.PRO < prev   
Encoding:
Prolog Source  |  1988-06-21  |  1.3 KB  |  50 lines

  1. /*
  2.    Turbo Prolog 2.0, Answer to Exercise on page 358.
  3.    
  4.    Copyright (c) 1986, 88 by Borland International, Inc
  5. */
  6.  
  7. Predicates
  8.     use_myxor
  9.     use_bitxor
  10.     myxor(integer,integer,integer)
  11.  
  12. Clauses
  13.     use_myxor:-
  14.         write("Using MYXOR :"),nl,nl,
  15.         write("Operator  p   q    p MYXOR q"),nl,
  16.         write("----------------------------"),nl,
  17.         write(" MYXOR"),
  18.         myxor(0,0,Result00),
  19.         myxor(0,1,Result01),
  20.         myxor(1,0,Result10),
  21.         myxor(1,1,Result11),
  22.         write("    0   0        ",Result00),nl,
  23.         write("          0   1        ",Result01),nl,
  24.         write("          1   0        ",Result10),nl,
  25.         write("          1   1        ",Result11),nl,nl,nl.
  26.  
  27.     myxor(A,B,Ans):-
  28.         bitnot(B,NotB),bitand(A,NotB,AandNotB),
  29.         bitnot(A,NotA),bitand(NotA,B,NotAandB),
  30.         bitor(AandNotB,NotAandB,Ans).
  31.  
  32.     use_bitxor:-
  33.         write("Using BITXOR :"),nl,nl,
  34.         write("Operator  p   q   p BITXOR q"),nl,
  35.         write("----------------------------"),nl,
  36.         write(" BITXOR"),
  37.         bitxor(0,0,Result00),
  38.         bitxor(0,1,Result01),
  39.         bitxor(1,0,Result10),
  40.         bitxor(1,1,Result11),
  41.         write("   0   0        ",Result00),nl,
  42.         write("          0   1        ",Result01),nl,
  43.         write("          1   0        ",Result10),nl,
  44.         write("          1   1        ",Result11),nl,nl,nl.
  45.  
  46. GOAL
  47.     makewindow(1,11,11," MyXor Vs. BitXor ",0,0,25,80,1,-1,"╒╕╘╛═│"),
  48.     use_myxor,
  49.     use_bitxor.
  50.