示例#1
0
        /*
         * Generate sample TruthTable for the variables
         */

        public TruthTable(char[] variables, Node root)
        {
            if (root != null)
            {
                Variables      = variables;
                VariablesCount = variables.Length;
                Proposition    = root;

                CombinationsCount = 1 << VariablesCount;
                RowsString        = GenerateNewTruthTable();
                Simplified        = Simplify(GetRowsMerged());
            }
        }
示例#2
0
        private void ShowSimplifiedTruthTable(TruthTable tt)
        {
            lbSimplifiedTruthTable.Items.Clear();
            foreach (string row in tt.Simplified.RowsString)
            {
                lbSimplifiedTruthTable.Items.Add(row);
            }
            tbBinHashSimplified.Text = tt.Simplified.BinHashValue;
            tbHexHashSimplified.Text = tt.Simplified.HexHashValue;

            TruthTable simplifiedNandifiedTruthTable = new TruthTable(parser.Variables, tt.Simplified.Proposition.Nandify());

            lbInfo.Items.Add("NAND simplified hex: " + simplifiedNandifiedTruthTable.HexHashValue);
        }
示例#3
0
        private void ShowTruthTableDNF(TruthTable original, TruthTable simplified)
        {
            Node originalDNF = original.CreateDNF();

            if (originalDNF != null)
            {
                tbDNFPrefix.Text = originalDNF.ToPrefixString();
                tbDNFInfix.Text  = originalDNF.ToString();

                TruthTable dnfTruthTable = new TruthTable(parser.Variables, originalDNF);
                lbInfo.Items.Add("Normal DNF hex: " + dnfTruthTable.HexHashValue);
            }
            Node simplifiedDNF = simplified.CreateDNF();

            if (simplifiedDNF != null)
            {
                tbSimplifiedDNFPrefix.Text = simplifiedDNF.ToPrefixString();
                tbSimplifiedDNFInfix.Text  = simplifiedDNF.ToString();

                TruthTable dnfSimplifiedTruthTable = new TruthTable(parser.Variables, simplifiedDNF);
                lbInfo.Items.Add("Simplified DNF hex: " + dnfSimplifiedTruthTable.HexHashValue);
            }
        }
示例#4
0
        private void ShowTruthTable()
        {
            TruthTable tt = new TruthTable(parser.Variables, n);

            lbTruthTable.Items.Clear();
            foreach (string row in tt.RowsString)
            {
                lbTruthTable.Items.Add(row);
            }
            tbBinHash.Text = tt.BinHashValue;
            tbHexHash.Text = tt.HexHashValue;

            lbInfo.Items.Add("Normal hex: " + tt.HexHashValue);
            Node       nandifiedExpression = tt.Proposition.Nandify();
            TruthTable nandifiedTruthTable = new TruthTable(parser.Variables, nandifiedExpression);

            lbInfo.Items.Add("Nandified hex: " + nandifiedTruthTable.HexHashValue);

            tbNANDPrefix.Text = nandifiedExpression.ToPrefixString();
            tbNANDInfix.Text  = nandifiedExpression.ToString();
            ShowSimplifiedTruthTable(tt);
            ShowTruthTableDNF(tt, tt.Simplified);
        }