⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 形式语言中的有穷状态自动机(DFA)的实现
💻 CS
字号:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;



namespace DFA
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string str = textBox1.Text;
             //输入句子
           
            //输出状态转换序列
            textBox2 .Text ="0"; 
            //当前状态
            int flag=0;   
            char[] arrchar = str.ToCharArray(0, str.Length);
            
                for (int i = 0; i < str.Length;i++)
                {
                    if ((arrchar[i] != '0' && arrchar[i] != '1') || flag == 4)
                    {
                        //MessageBox.Show("此语句不是这个DFA接受的语句!", "判断结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        flag =4;
                        textBox2.Text = textBox2.Text + flag.ToString();
                        break;
                    }
                    else
                    {
                        if (arrchar[i] == '1')
                            switch (flag)
                            {
                                case 0:
                                    flag = 1;
                                    textBox2.Text = textBox2.Text + flag.ToString();
                                    break;
                                case 1:
                                    flag = 1;
                                    textBox2.Text = textBox2.Text + flag.ToString();
                                    break;
                                case 2:
                                    flag = 3;
                                    textBox2.Text = textBox2.Text + flag.ToString();
                                    break;
                                case 3:
                                    flag = 4;
                                    textBox2.Text = textBox2.Text + flag.ToString();
                                    break;
                               

                            }
                        else
                        {
                            
                                switch (flag)
                                {
                                    case 0:
                                        flag = 0;
                                        textBox2.Text = textBox2.Text + flag.ToString();
                                        break;
                                    case 1:
                                        flag = 2;
                                        textBox2.Text = textBox2.Text + flag.ToString();
                                        break;
                                    case 2:
                                        flag = 0;
                                        textBox2.Text = textBox2.Text + flag.ToString();
                                        break;
                                    case 3:
                                        flag = 0;
                                        textBox2.Text = textBox2.Text + flag.ToString();
                                        break;
                                   

                                }
                        }

                    }
                }
                if(flag !=4)
                {
                    MessageBox.Show("此语句不是这个DFA接受的语句!", "判断结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            else 
                {
                    MessageBox.Show("此语句是这个DFA接受的语句!", "判断结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

            }

        

            
        }

        }
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -