private void Implementation() { if (Radical_or_Decimal) { //Прямой ход метода Гаусса для приведения к треугольному виду. StepsSolve.Gauss(ogr, CornerDot); //Выражение базисных переменных и приведение к диагональному виду. StepsSolve.HoistingMatrix(ogr, number_of_basix); // Обновляем данные на таблице //Обновление визуализации переменных. if (CornerDot) { addGridParam(ogr, dataGridView3, variable_visualization); } else { addGridParam(ogr, dataGridView3); } //создаём сиплекс-таблицу simplextable = new Simplex(number_of_basix, number_of_free_variables, ogr, cel_function, true, Radical_or_Decimal); DrawSimplexTable(ogr); } else { //Прямой ход метода Гаусса для приведения к треугольному виду. StepsSolve.Gauss(ogr_with_radicals, CornerDot); //Выражение базисных переменных и приведение к диагональному виду. StepsSolve.HoistingMatrix(ogr_with_radicals, number_of_basix); //Обновление визуализации переменных. if (CornerDot) { addGridParam(ogr_with_radicals, dataGridView3, variable_visualization); } else { addGridParam(ogr_with_radicals, dataGridView3); } //создаём сиплекс-таблицу simplextable = new Simplex(number_of_basix, number_of_free_variables, ogr_with_radicals, cel_function_with_radicals, true, Radical_or_Decimal); DrawSimplexTable(ogr_with_radicals); } int responce; int step = 1; while (true) { if ((responce = simplextable.ResponseCheck()) == 0) { //выбор любого опорного simplextable.SelectionRandomSupportElement(); //меняем местами переменные simplextable.ChangeOfVisualWithoutBuffer(dataGridView3); // высчитывание по опорному simplextable.CalculateSimplexTable(simplextable.row_of_the_support_element, simplextable.column_of_the_support_element); // обновление данных симплекс таблицы if (Radical_or_Decimal) { addGridParam_for_simplex_elements(simplextable.simplex_elements, dataGridView3); } else { addGridParam_for_simplex_elements(simplextable.simplex_elements_with_radicals, dataGridView3); } step++; } else if (responce == 1) { if (MinMax == 0) { if (Radical_or_Decimal) { label_answer.Text = "Ответ :" + simplextable.Response(); } else { label_answer.Text = "Ответ :" + simplextable.Responce_for_radicals().Reduction(); } } else { if (Radical_or_Decimal) { label_answer.Text = "Ответ: " + simplextable.Response() * (-1); } else { label_answer.Text = "Ответ :" + simplextable.Responce_for_radicals().Reduction() * (-1); } } // Выводим точку X* if (corner_dot_was_added == false) { corner_dot_was_added = true; //добавляем точку addGridParam(ResponseDot(), dataGridViewCornerDot); } break; } else if (responce == -1) { MessageBox.Show("Задача не разрешима"); // tabControl1.TabPages[0].Text = "Задача не разрешима!"; break; } } }