static public void Minimalization() { Console.Clear(); Console.WriteLine("1. Minimalization DFA" + Environment.NewLine + "2. Minimalization Random DFA"); var ans = Console.ReadLine(); AutomataMinimalization m = new AutomataMinimalization(); AutomataConverter c = new AutomataConverter(); int choice = 0; if (int.TryParse(ans, out choice)) { switch (choice) { case 1: Console.Clear(); Automata <string> a = Tester.TestDFA2(); Console.WriteLine("De volgende DFA: "); a.printTransitions(); Tester.generateAutomataImage(a); Console.WriteLine("Is in Minimalisatie: (druk op een knop)"); Console.ReadLine(); Automata <String> mini = m.Minimization(a); mini.printTransitions(); Tester.generateAutomataImage(mini); ResetToMenu(); break; case 2: Console.Clear(); Automata <string> b = c.renameStates(Tester.generateRandomDfa()); Console.WriteLine("De volgende DFA: "); b.printTransitions(); Tester.generateAutomataImage(b); Console.WriteLine("Is in Minimalisatie: (druk op een knop)"); Console.ReadLine(); Automata <String> mini2 = m.Minimization(b); mini2.printTransitions(); Tester.generateAutomataImage(mini2); ResetToMenu(); break; default: Console.WriteLine("Deze optie is niet beschikbaar." + Environment.NewLine + "Druk op een knop om terug te gaan"); ResetToMenu(); break; } } else { Console.WriteLine("Vul alstublieft het nummer van de keuze in." + Environment.NewLine + "Druk op een knop om terug te gaan"); ResetToMenu(); } }
static public void RegExToNdfaDfa() { Console.Clear(); Console.WriteLine("1. RegEx -> NDFA"); var ans = Console.ReadLine(); int choice = 0; Automata <String> auto = new Automata <String>(); int num = 0; if (int.TryParse(ans, out choice)) { switch (choice) { case 1: Console.Clear(); char[] alfabet = { 'a', 'b', 'c' }; RegularExpression b = Tester.generateRandomRegex(alfabet, 5); Console.WriteLine(b.ToString() + Environment.NewLine + "Geeft:"); b.regexToNDFA(ref num, ref auto); auto.printTransitions(); Tester.generateAutomataImage(auto); ResetToMenu(); break; default: Console.WriteLine("Deze optie is niet beschikbaar." + Environment.NewLine + "Druk op een knop om terug te gaan"); ResetToMenu(); break; } } else { Console.WriteLine("Vul alstublieft het nummer van de keuze in." + Environment.NewLine + "Druk op een knop om terug te gaan"); ResetToMenu(); } }
static public void NdfaToDfa() { Console.Clear(); Console.WriteLine("1. NDFA -> DFA (zonder Epsilon)" + Environment.NewLine + "2. NDFA -> DFA (met Epsilon)" + Environment.NewLine + "3. NDFA -> DFA (Random NDFA)"); var ans = Console.ReadLine(); AutomataConverter c = new AutomataConverter(); int choice = 0; if (int.TryParse(ans, out choice)) { switch (choice) { case 1: Console.Clear(); Automata <string> a = Tester.TestNDFA(); Console.WriteLine("De volgende NDFA:"); a.printTransitions(); Tester.generateAutomataImage(a); Console.WriteLine("is deze DFA: (Druk op een knop)"); Console.ReadLine(); c.NDFAToDFA(a).printTransitions(); Tester.generateAutomataImage(c.NDFAToDFA(a)); ResetToMenu(); break; case 2: Console.Clear(); Automata <string> b = Tester.TestNDFA2(); Console.WriteLine("De volgende NDFA:"); b.printTransitions(); Tester.generateAutomataImage(b); Console.WriteLine("is deze DFA: (Druk op een knop)"); Console.ReadLine(); c.NDFAToDFA(b).printTransitions(); Tester.generateAutomataImage(c.NDFAToDFA(b)); ResetToMenu(); break; case 3: Console.Clear(); Automata <string> d = Tester.generateRandomNdfa(); Console.WriteLine("De volgende NDFA:"); d.printTransitions(); Tester.generateAutomataImage(d); Console.WriteLine("is deze DFA: (Druk op een knop)"); Console.ReadLine(); c.NDFAToDFA(d).printTransitions(); Tester.generateAutomataImage(c.NDFAToDFA(d)); ResetToMenu(); break; default: Console.WriteLine("Deze optie is niet beschikbaar." + Environment.NewLine + "Druk op een knop om terug te gaan"); ResetToMenu(); break; } } else { Console.WriteLine("Vul alstublieft het nummer van de keuze in." + Environment.NewLine + "Druk op een knop om terug te gaan"); ResetToMenu(); } }