コード例 #1
0
ファイル: Program.cs プロジェクト: MOMANI1/NFA-and-DFA-
        private static void Main(string[] args)
        {
            //var states = new List<State>();
            //var initialState = new State("Q0");
            //states.Add(initialState);
            //states.Add(new State("Q1", true));
            //states.Add(new State("Q2", true));

            ////var seqma = new[] { '0', '1' };
            //var seqma = new List<Alphapits>();
            //seqma.Add('0');
            //seqma.Add('1');

            //var Transitions = new List<TransitionFunction>();

            //Transitions.Add(new TransitionFunction(states[0], states[1], seqma[0])); // q0 to q1 via 0
            //Transitions.Add(new TransitionFunction(states[0], states[0], seqma[1])); // q0 to q0 via 1
            //Transitions.Add(new TransitionFunction(states[1], states[0], seqma[0])); // q1 to q0 via 0
            //Transitions.Add(new TransitionFunction(states[1], states[2], seqma[1])); // q1 to q0 via 1
            //Transitions.Add(new TransitionFunction(states[2], states[0], seqma[0])); // q1 to q0 via 0
            //Transitions.Add(new TransitionFunction(states[2], states[0], seqma[1])); // q1 to q0 via 1

            //DFA dfa = new DFA(states, seqma, initialState , states[1], Transitions);

            //dfa.TestInput("010");

            try
            {

                var states = new List<State>(){ new State("q0"), new State("q1"),new State("q2") };
                var symbols = new List<Alphapits>() { 'a', 'b','c' };
                var transitionFunctions = new List<TransitionFunction>()
                {
                    new TransitionFunction(new State("q0"), new State("q1"), symbols[0]),
                    new TransitionFunction(new State("q1"), new State("q2"), symbols[1])
                };

                var nfa =new NFA(states, symbols, states[0],states[2],transitionFunctions);
                nfa.TestInput("ab");
                var dfa = nfa.ConvertToDfa();
                dfa.TestInput("ab");

                //   Console.WriteLine(dfa.ToString());

                //int a = 0;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            Console.ReadKey();
        }
コード例 #2
0
 private void btn_next_Click(object sender, EventArgs e)
 {
     if (tabControl1.SelectedIndex < tabControl1.TabCount)
         tabControl1.SelectedIndex += 1;
     if (btn_next.Text == Resources.DoneWord)
     {
         try
         {
             if (MachineType == machineType.Dfa)
                 Machine = new DFA(States, Seqma, InitialState, FinalStates, Transitions);
             else Machine = new NFA(States, Seqma, InitialState, FinalStates, Transitions);
             Close();
             
         }
         catch (Exception exception)
         {
             MessageBox.Show(exception.Message, Resources.ErrorWord, MessageBoxButtons.OK, MessageBoxIcon.Error);
             Console.WriteLine(exception);
         }
     }
 }