示例#1
0
 public Machine(ObservableCollection <State> states, ObservableCollection <Function> functions, State state, Alphabet alphabet)
 {
     this.firstState = state;
     this.states     = states;
     this.functions  = functions;
     this.Alphabet   = alphabet;
 }
示例#2
0
 public Machine(ObservableCollection<State> states, ObservableCollection<Function> functions, State state, Alphabet alphabet)
 {
     this.firstState = state;
     this.states = states;
     this.functions = functions;
     this.Alphabet = alphabet;
 }
示例#3
0
 /// <summary>
 /// Проверка автомата на детерминированность.
 /// </summary>
 /// <returns></returns>
 public bool IsDet()
 {
     if (alphabet.Letters.Count != 0) // если алфавит не пустой
     {
         foreach (State state in states)
         {
             // для каждой вершины составляем список букв, по которым возможен переход в ругое состояние
             Alphabet tempAlphabet = new Alphabet();
             foreach (Function function in functions)
             {
                 if (function.From == state)
                 {
                     if (tempAlphabet.Contains(function.Letter)) return false; // Если из состояния уже есть переход по данной букве
                     else
                     {
                         tempAlphabet.AddNewLetter(function.Letter);
                     }
                 }
             }
             //if (tempAlphabet.Letters.Count != alphabet.Letters.Count) return false;
         }
         return true;
     }
     else return false;
 }
示例#4
0
 public Machine()
 {
     this.states = new ObservableCollection<State>();
     this.functions = new ObservableCollection<Function>();
     this.firstState = new State();
     this.alphabet = new Alphabet();
 }