Ejemplo n.º 1
0
        // calculateButton кнопка перехода к 1 части решения
        private void calculateButton_Click(object sender, RoutedEventArgs e)
        {
            message.Content        = "";
            message2.Content       = "";
            messageAnswer.Content  = "";
            messageAnswer2.Content = "";
            // заполнить массивы с коэф-ми цел. ф-ии и условий
            LinearProgrammingProblem.ReadTextGrid(this, lpp.matrix1, lpp.matrix2, lpp.matrixG, lpp.matrixGFlag);
            // запомнить min или max ищем
            int      columns1 = grid1.ColumnDefinitions.Count;
            ComboBox cB       = (ComboBox)grid1.Children[columns1 - 1];

            lpp.extremum = (string)cB.SelectionBoxItem;
            // проверка ранга
            GaussMethod MatrixsG = new GaussMethod(lpp.matrix2.GetLength(0), lpp.matrix2.GetLength(1), lpp.matrix2);

            if (MatrixsG.Rank == MatrixsG.m)
            {
                // очистить матрицы симпл. метода
                ClearSM();
                // скрыть/ сделать недоступными кнопки навигации
                Display.ChangePropertiesButton_EnabledFalse_1(this);
                Display.ChangePropertiesButton_VisibilityCollapsed_2(this);
                // очистить для новых записей
                ClearMAB();
                ClearG();
                // 1 часть Гаусс/ мет иск. баз.
                switch (selectedMethod)
                {
                case "Gauss":
                    CalculateG();
                    break;

                case "MAB":
                    CalculateMAB();
                    break;
                }
            }
            else
            {
                MessageBox.Show("ошибка: условий больше, чем требуется");
            }
        }
Ejemplo n.º 2
0
        private void CalculateG()
        {
            DeleteClickButton();

            prevButton.Click  += prevButton_Click_G;
            nextButton.Click  += nextButton_Click_G;
            startButton.Click += startButton_Click_G;
            endButton.Click   += endButton_Click_G;

            autoButton.Visibility = Visibility.Collapsed;
            // заполнить матрицу для расчета методом иск. базиса
            GaussMethod.InitializeG(this);
            GaussMethod.TransformMatrix(lpp, lpp.matrixG, lpp.matrixGFlag, lpp.methodGauss, message);
            lpp.nowNumMatrixG = lpp.methodGauss.Count - 1;
            if (message.Content.Equals(""))
            {
                message.Content = "Найден базис";
            }
            // отобразить таблицу иск. базиса
            Display.InitializeGrid_3_intermediary(this, grid3, lpp.methodGauss[lpp.nowNumMatrixG]);
        }