コード例 #1
0
        public void Input()
        {
            string path = @"Test 2.txt";

            try
            {
                using (StreamReader sr = new StreamReader(path, System.Text.Encoding.Default))
                {
                    string buffer;
                    string A, Q, Final_Q;

                    A        = sr.ReadLine();
                    Alphabet = A.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                    Q            = sr.ReadLine();
                    StateMachine = Q.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                    InitialStateMachine = sr.ReadLine();

                    Final_Q = sr.ReadLine();

                    FinalStateMachine = Final_Q.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                    while ((buffer = sr.ReadLine()) != null)
                    {
                        string[] parts = buffer.Split(new char[] { ' ' }, 3);
                        if (parts.Length == 3)
                        {
                            Transition transition = new Transition();
                            transition.From = parts[0];
                            transition.Symb = parts[1];
                            transition.To   = parts[2];

                            transitions.Add(transition);
                        }
                        else
                        {
                            throw new Exception($"Некорректный переход: {buffer}");
                        }
                    }
                }
                Validate();
            }
            catch (Exception Ex)
            {
                Console.WriteLine(Ex.Message);
            }
        }
コード例 #2
0
        public void Input()
        {
            string path = @"Test 2.txt";

            try
            {
                using (StreamReader sr = new StreamReader(path, System.Text.Encoding.Default))
                {
                    string buffer;
                    string A, Q, Final_Q;

                    A        = sr.ReadLine();
                    Alphabet = A.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);


                    Q = sr.ReadLine();

                    String[] TmpQ = Q.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                    for (int i = 0; i < TmpQ.Length; i++)
                    {
                        StateMachine.Add(TmpQ[i]);
                    }

                    InitialStateMachine = sr.ReadLine();

                    Final_Q = sr.ReadLine();
                    String[] TmpF_Q = Final_Q.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                    for (int i = 0; i < TmpF_Q.Length; i++)
                    {
                        StateMachine.Add(TmpF_Q[i]);
                    }

                    while ((buffer = sr.ReadLine()) != null)
                    {
                        string[] parts = buffer.Split(new char[] { ' ' }, 3);
                        if (parts.Length == 3)
                        {
                            DTransition transition = new DTransition();
                            transition.From = parts[0];
                            transition.Symb = parts[1];
                            transition.To   = parts[2];

                            transitions.Add(transition);
                        }
                        else
                        {
                            throw new Exception($"Некорректный переход: {buffer}");
                        }
                    }
                }

                Validate();
                Reset();
                Console.WriteLine("Введите строку разделяя символы пробелами");
                string tmp_string = "";
                tmp_string = Console.ReadLine();
                string[] input = tmp_string.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                Mashine(input);

                Reset();
            }
            catch (Exception Ex)
            {
                Console.WriteLine(Ex.Message);
            }
            Console.ReadKey();
        }