?? form1.cs
字號:
?using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
namespace 浮點數的DFA
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/******************狀態函數******************/
private int zt0(char c)
{
if (c == '+' || c == '-')
{
listBox_xs.Items.Add("狀態0→1 (條件'+/-')");
return 1;
}
else if (c == '.')
{
listBox_xs.Items.Add("狀態0→3 (條件'.')");
return 3;
}
else if (c >= '0' && c <= '9')
{
listBox_xs.Items.Add("狀態0→2 (條件數字'"+c+"')");
return 2;
}
else return 9; //9-錯誤狀態
}
private int zt1(char c)
{
if (c >= '0' && c <= '9')
{
listBox_xs.Items.Add("狀態1→2 (條件數字'" + c + "')");
return 2;
}
else return 9;
}
private int zt2(char c)
{
if (c >= '0' && c <= '9')
{
listBox_xs.Items.Add("狀態2→2 (條件數字'" + c + "')");
return 2;
}
if (c == '.')
{
listBox_xs.Items.Add("狀態2→3 (條件'.')");
return 3;
}
if (c == 'e' || c == 'E')
{
listBox_xs.Items.Add("狀態2→5 (條件'e/E')");
return 5;
}
else return 9;
}
private int zt3(char c)
{
if (c >= '0' && c <= '9')
{
listBox_xs.Items.Add("狀態3→4 (條件數字'" + c + "')");
return 4;
}
else return 9;
}
private int zt4(char c)
{
if (c >= '0' && c <= '9')
{
listBox_xs.Items.Add("狀態4→4 (條件數字'" + c + "')");
return 4;
}
if (c == 'e' || c == 'E')
{
listBox_xs.Items.Add("狀態4→5 (條件'e/E')");
return 5;
}
else return 9;
}
private int zt5(char c)
{
if (c == '+' || c == '-')
{
listBox_xs.Items.Add("狀態5→6 (條件'+/-')");
return 6;
}
if (c >= '0' && c <= '9')
{
listBox_xs.Items.Add("狀態5→7 (條件數字'" + c + "')");
return 7;
}
else return 9;
}
private int zt6(char c)
{
if (c >= '0' && c <= '9')
{
listBox_xs.Items.Add("狀態6→7 (條件數字'" + c + "')");
return 7;
}
else return 9;
}
private int zt7(char c)
{
if (c >= '0' && c <= '9')
{
listBox_xs.Items.Add("狀態7→7 (條件數字'" + c + "')");
return 7;
}
else return 9;
}
/********************************************/
private bool F_DFA(string str)
{
int zt = 0;//保存狀態
char[] cr=str.ToCharArray();
for (int i = 0; i < cr.Length&&zt!=9; i++)
{
switch (zt)
{
case 0: zt = zt0(cr[i]); break;
case 1: zt = zt1(cr[i]); break;
case 2: zt = zt2(cr[i]); break;
case 3: zt = zt3(cr[i]); break;
case 4: zt = zt4(cr[i]); break;
case 5: zt = zt5(cr[i]); break;
case 6: zt = zt6(cr[i]); break;
case 7: zt = zt7(cr[i]); break;
default: { listBox_xs.Items.Add(cr[i] + "發生錯誤!"); break; }
}
}
if (zt == 3 || zt == 4 || zt == 7)
{
listBox_xs.Items.Add(str + "可轉到最終狀態,是浮點數!");
return true;
}
else
{
listBox_xs.Items.Add(str + "不可轉到最終狀態,不是浮點數!");
return false;
}
}
private void button_t_Click(object sender, EventArgs e)
{
string str = textBox_num.Text.ToString();
listBox_xs.Items.Clear();
if (F_DFA(str) == true)
label1.Text = str + "是浮點數 分析如下:";
else
label1.Text = str + "不是浮點數 分析如下:";
}
private void button_p_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("F_DFA.JPG");
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -