Difference between revisions of "CSC270 GenerateTruthTable.py"

From dftwiki3
Jump to: navigation, search
Line 2: Line 2:
 
<code><pre>
 
<code><pre>
  
# truthtable.py
+
# truthtable.py
 
# D. Thiebaut
 
# D. Thiebaut
 
# how a simple python program can generate the
 
# how a simple python program can generate the
 
# truth table of a boolean function
 
# truth table of a boolean function
 
#
 
#
# here are 2 functions of 3 variables
+
# 3 functions of 3 variables are shown here:
 
#      _
 
#      _
 
# f = a.b + c
 
# f = a.b + c
 
#    _  _  _
 
#    _  _  _
 
# g = a + b + c
 
# g = a + b + c
 +
#        _
 +
# h = a + b
  
 
def f( a, b, c ):
 
def f( a, b, c ):
     return ( a & (not b) ) | c
+
     return ( a and (not b) ) or c
  
 
def g( a, b, c ):
 
def g( a, b, c ):
     return (not a) | (not b) | (not c)
+
     return (not a) or (not b) or (not c)
 +
 
 +
def h( a, b, c ):
 +
    return a or not b
  
 
def main():
 
def main():
     print "  a  b  c  |  f  g  "
+
     print( "  a  b  c  |  f  g  h" )
     print "-----------+--------"
+
     print( "-----------+---------" )
 
     for a in [ 0, 1 ]:
 
     for a in [ 0, 1 ]:
 
         for b in [ 0, 1 ]:
 
         for b in [ 0, 1 ]:
 
             for c in [ 0, 1 ]:
 
             for c in [ 0, 1 ]:
                 print "%3d%3d%3d  |%3d%3d" % \
+
                 print( "%3d%3d%3d  |%3d%3d%3d" %  
                       ( a, b, c, f( a, b, c ), g( a, b, c ) )              
+
                       ( a, b, c,
 +
                        f( a, b, c ),
 +
                        g( a, b, c ),
 +
                        h( a, b, c ) ) )
  
 
main()
 
main()
 +
 +
  
  
Line 37: Line 47:
  
 
<code><pre>
 
<code><pre>
   a  b  c  |  f  g   
+
 
-----------+--------
+
   a  b  c  |  f  g  h
   0  0  0  |  0  1
+
-----------+---------
   0  0  1  |  1  1
+
   0  0  0  |  0 1 1
   0  1  0  |  0  1
+
   0  0  1  | 1 1  1
   0  1  1  |  1  1
+
   0  1  0  |  0  1 0
   1  0  0  |  1  1
+
   0  1  1  |  1  1 0
   1  0  1  |  1  1
+
   1  0  0  | 1 1  1
   1  1  0  |  0  1
+
   1  0  1  | 1 1  1
   1  1  1  |  1  0
+
   1  1  0  |  0 1 1
 +
   1  1  1  |  1  0 1
 +
 
 +
 
  
 
</pre></code>
 
</pre></code>

Revision as of 16:55, 2 February 2012

One can use python (or any other language) to easily generate truth tables. This is a simple way to test a hypothesis, or to verify special cases in design situations. Don't hesitate to use this approach to save time and generate accurate results.


# truthtable.py  
# D. Thiebaut
# how a simple python program can generate the
# truth table of a boolean function
#
# 3 functions of 3 variables are shown here:
#       _
# f = a.b + c
#     _   _   _
# g = a + b + c
#         _
# h = a + b

def f( a, b, c ):
    return ( a and (not b) ) or c

def g( a, b, c ):
    return (not a) or (not b) or (not c)

def h( a, b, c ):
    return a or not b

def main():
    print( "  a  b  c  |  f  g  h" )
    print( "-----------+---------" )
    for a in [ 0, 1 ]:
        for b in [ 0, 1 ]:
            for c in [ 0, 1 ]:
                print( "%3d%3d%3d  |%3d%3d%3d" % 
                      ( a, b, c,
                        f( a, b, c ),
                        g( a, b, c ),
                        h( a, b, c ) ) )

main()





The output is show below:


  a  b  c  |  f  g  h
-----------+---------
  0  0  0  |  0  1  1
  0  0  1  |  1  1  1
  0  1  0  |  0  1  0
  0  1  1  |  1  1  0
  1  0  0  |  1  1  1
  1  0  1  |  1  1  1
  1  1  0  |  0  1  1
  1  1  1  |  1  0  1