示例#1
0
        public static void DoMainWork(bool printing, bool fullInfo, bool stops)
        {
            int             errors        = 0;
            List <Function> unequalityies = new List <Function>();

            for (int i = 1; i < 5; i++)
            {
                for (int j = 0; j < Math.Pow(2, Math.Pow(2, i)); j++)
                {
                    Function resultFunction = Generator.GetCurrentFunction(i, j);
                    if (printing)
                    {
                        if (fullInfo)
                        {
                            PrintFunctionInfo(resultFunction);
                        }
                        bool result = resultFunction.QdnfAndStdnfAreEqual;
                        Console.WriteLine(string.Format("Тест #{0}, функция: {1}, результат: {2}", j, resultFunction.ToString(), result ? "+" : "-"));
                        if (j == 8187)
                        {
                            PrintFunctionInfo(resultFunction);
                        }
                    }
                    if (!resultFunction.QdnfAndStdnfAreEqual)
                    {
                        unequalityies.Add(resultFunction);
                        errors++;
                    }
                }
                Console.WriteLine("Найдено несоответствий на данном этапе: ");
                Console.WriteLine(errors);
                if (printing)
                {
                    foreach (Function currentFunction in unequalityies)
                    {
                        Console.WriteLine(KarnaughMapCreator.GetFunctionMatrixConsoleOutputString(currentFunction) + '\n');
                    }
                }
                if (stops)
                {
                    Console.WriteLine(string.Format("Перебраны все функции от {0} переменных. Продолжить?", i));
                    Console.ReadKey();
                }
            }
        }