Exemple #1
0
        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();
            }
        }
Exemple #2
0
        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();
            }
        }
Exemple #3
0
        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();
            }
        }