Difference between revisions of "CSC270 GenerateTruthTable.py"
(→Java Version) |
(→Python 3.X Version) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | One can use python (or any other language) to easily generate truth tables. | + | --[[User:Thiebaut|D. Thiebaut]] ([[User talk:Thiebaut|talk]]) 11:48, 15 January 2016 (EST) |
+ | ---- | ||
+ | <br /> | ||
+ | One can use python (or Java, or any other language) to easily generate truth tables. Programming provides 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 /> | <br /> | ||
=Python 3.X Version= | =Python 3.X Version= | ||
Line 46: | Line 49: | ||
</source> | </source> | ||
− | + | <br /> | |
The output is show below: | The output is show below: | ||
− | + | <br /> | |
::<source lang="text"> | ::<source lang="text"> | ||
Line 66: | Line 69: | ||
</source> | </source> | ||
<br /> | <br /> | ||
+ | |||
=Java Version= | =Java Version= | ||
<br /> | <br /> | ||
Line 82: | Line 86: | ||
static String s( boolean a ) { | static String s( boolean a ) { | ||
− | return ((a==true)? "T": "F" ); | + | // return ((a==true)? "T": "F" ); // use this if you want T and F output |
+ | return ((a==true)? "1": "0" ); | ||
} | } | ||
Line 111: | Line 116: | ||
a b c | f g h | 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 | |
</source> | </source> | ||
<br /> | <br /> |
Latest revision as of 12:48, 15 January 2016
--D. Thiebaut (talk) 11:48, 15 January 2016 (EST)
One can use python (or Java, or any other language) to easily generate truth tables. Programming provides 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" ); // use this if you want T and F output return ((a==true)? "1": "0" ); } 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
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