public Machine(ObservableCollection <State> states, ObservableCollection <Function> functions, State state, Alphabet alphabet) { this.firstState = state; this.states = states; this.functions = functions; this.Alphabet = alphabet; }
public Machine(ObservableCollection<State> states, ObservableCollection<Function> functions, State state, Alphabet alphabet) { this.firstState = state; this.states = states; this.functions = functions; this.Alphabet = alphabet; }
/// <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; }
public Machine() { this.states = new ObservableCollection<State>(); this.functions = new ObservableCollection<Function>(); this.firstState = new State(); this.alphabet = new Alphabet(); }