Difference between revisions of "CSC270 GenerateTruthTable.py"
Line 1: | Line 1: | ||
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. | 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. | ||
+ | <br /> | ||
+ | =Python 3.X Version= | ||
+ | <br /> | ||
::<source lang="python"> | ::<source lang="python"> | ||
Line 62: | Line 65: | ||
</source> | </source> | ||
+ | <br /> | ||
+ | =Java Version= | ||
+ | <br /> | ||
+ | ::<source lang="java"> | ||
+ | class TruthTable { | ||
+ | static boolean f( boolean a, boolean b, boolean c ) { | ||
+ | return ( a & (! b) ) | c; | ||
+ | } | ||
+ | static boolean g( boolean a, boolean b, boolean c ) { | ||
+ | return !a | !b | !c; | ||
+ | } | ||
+ | |||
+ | static boolean h( boolean a, boolean b, boolean c ) { | ||
+ | return a | ! b; | ||
+ | } | ||
+ | |||
+ | static String s( boolean a ) { | ||
+ | return ((a==true)? "T": "F" ); | ||
+ | } | ||
+ | |||
+ | public static void main( String[] args ) { | ||
+ | System.out.println( " a b c | f g h" ); | ||
+ | System.out.println( "-----------+---------" ); | ||
+ | for (int a =0; a <= 1; a++ ) | ||
+ | for (int b=0; b <= 1; b++ ) | ||
+ | for (int c=0; c<=1; c++ ) { | ||
+ | boolean aa = (a==1)? true: false; | ||
+ | boolean bb = (b==1)? true: false; | ||
+ | boolean cc = (c==1)? true: false; | ||
+ | System.out.println( | ||
+ | String.format( "%3s%3s%3s |%3s%3s%3s", | ||
+ | s(aa), s(bb), s(cc), | ||
+ | s(f( aa, bb, cc )), | ||
+ | s(g( aa, bb, cc )), | ||
+ | s(h( aa, bb, cc )) ) ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </source> | ||
+ | <br /> | ||
+ | Output | ||
+ | <br /> | ||
+ | ::<source lang="text"> | ||
+ | |||
+ | </source> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | [[Category:CSC270]][[Category:Python]][[Category:Java]] |
Revision as of 12:44, 15 January 2016
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.
Python 3.X Version
# 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
Java Version
class TruthTable { static boolean f( boolean a, boolean b, boolean c ) { return ( a & (! b) ) | c; } static boolean g( boolean a, boolean b, boolean c ) { return !a | !b | !c; } static boolean h( boolean a, boolean b, boolean c ) { return a | ! b; } static String s( boolean a ) { return ((a==true)? "T": "F" ); } public static void main( String[] args ) { System.out.println( " a b c | f g h" ); System.out.println( "-----------+---------" ); for (int a =0; a <= 1; a++ ) for (int b=0; b <= 1; b++ ) for (int c=0; c<=1; c++ ) { boolean aa = (a==1)? true: false; boolean bb = (b==1)? true: false; boolean cc = (c==1)? true: false; System.out.println( String.format( "%3s%3s%3s |%3s%3s%3s", s(aa), s(bb), s(cc), s(f( aa, bb, cc )), s(g( aa, bb, cc )), s(h( aa, bb, cc )) ) ); } } }
Output