Example #1
0
        /// <summary>
        /// Add clauses to truth table and calculate their output.
        /// </summary>
        public void CalculateTELL()
        {
            string        tempString   = "";
            List <string> uniqueValues = new List <string>();

            for (int i = 0; i < _clauses.Length; i++)
            {
                if (_clauses[i].Contains("&") || _clauses[i].Contains("=>"))
                {
                    foreach (char c in _clauses[i])
                    {
                        if (c != '=')
                        {
                            tempString = tempString + c;
                        }
                    }

                    uniqueValues.Add(tempString);

                    _clauses[i] = tempString;
                    tempString  = "";
                }
            }

            TruthSolver truthSolver = new TruthSolver();
            string      truthValue  = "";

            foreach (string s in uniqueValues)
            {
                _truthTable.Add(new List <char>());
                _tableMap.Add(s, _truthTable.Count - 1);

                for (int i = 0; i < _truthTable[0].Count; i++)
                {
                    foreach (char c in s)
                    {
                        if (!TruthTablePostFix.IsOperator(c))
                        {
                            truthValue = truthValue + c;
                        }
                        else
                        {
                            truthValue = Convert.ToString(_truthTable[_tableMap.Find(Convert.ToString(truthValue))][i]);
                            tempString = tempString + truthValue + c;
                            truthValue = "";
                        }
                    }

                    tempString = tempString + Convert.ToString(_truthTable[_tableMap.Find(Convert.ToString(truthValue))][i]);

                    _truthTable[_tableMap.Find(s)].Add(truthSolver.Calculate(tempString));
                    tempString = "";
                    truthValue = "";
                }
            }
        }
Example #2
0
        public char Calculate(string input)
        {
            TruthTablePostFix TTPF = new TruthTablePostFix(input);

            return(TTPF.Solve());
        }