Exemplo n.º 1
0
        private void buttonBack_Click(object sender, EventArgs e)
        {
            if (step == 1)
            {
                bool         Cancel  = true;
                const string message =
                    "Закрыть?";
                const string caption = "";
                var          result  = MessageBox.Show(message, caption,
                                                       MessageBoxButtons.YesNo,
                                                       MessageBoxIcon.Question);

                if (result == DialogResult.Yes)
                {
                    Cancel = false;
                }

                if (!Cancel)
                {
                    this.Close();
                }
            }
            else
            {
                if (step_1 == 1)
                {
                    // Достаём из буфера визуализацию
                    variable_visualization = simplextable.GetOutTheBufferVariablevisualizationForDeleteColumns();

                    basix_variable_visualization = simplextable.GetOutTheBufferVariablevisualizationForDeleteRows();

                    simplextable = new Simplex(simplextable1);

                    if (Radical_or_Decimal)
                    {
                        addGridParam_for_simplex_elements(simplextable.buffer_simplex_elements[simplextable.buffer_simplex_elements.Count - 1], dataGridView3, variable_visualization, basix_variable_visualization);
                    }

                    else
                    {
                        addGridParam_for_simplex_elements(simplextable.buffer_simplex_elements_for_radicals[simplextable.buffer_simplex_elements_for_radicals.Count - 1], dataGridView3, variable_visualization, basix_variable_visualization);
                    }

                    // достаём из буффера симлпекс элементы
                    simplextable.GetOutOfTheBufferSimplex_ForArtifical();

                    step--;
                    step_1--;
                    label1.Text = "Метод искусственного базиса. Выбор опорного элемента.";
                    //меняем местами переменные обратно
                    simplextable.ChangeOfVisualizationVariables_GetOutTheBuffer(dataGridView3);

                    simplextable.SelectionOfTheSupportElement(dataGridView3);

                    ArtificalBasixGoToNull = false;
                    buttonNext.Enabled     = true;
                    return;
                }
                else if (step_1 > 1)
                {
                    buttonNext.Enabled        = true;
                    label_answer.Visible      = false;
                    groupBoxCornerDot.Visible = false;

                    //убираем кнопки
                    simplextable.delete_green_grids(dataGridView3);
                    //меняем местами переменные обратно
                    simplextable.ChangeOfVisualizationVariables_GetOutTheBuffer(dataGridView3);
                    //выводим данные из буфера
                    simplextable.GetOutOfTheBufferSimplex_ForArtifical();
                    //отрисовываем
                    if (Radical_or_Decimal)
                    {
                        addGridParam_for_simplex_elements(simplextable.simplex_elements, dataGridView3);
                    }
                    else
                    {
                        addGridParam_for_simplex_elements(simplextable.simplex_elements_with_radicals, dataGridView3);
                    }

                    step_1--;
                    label1.Text = "Метод искусственного базиса. Выбор опорного элемента.";
                    simplextable.SelectionOfTheSupportElement(dataGridView3);

                    // очищаем буфер на один шаг
                    simplextable.buffer_delete_artifical_columns.RemoveAt(simplextable.buffer_delete_artifical_columns.Count - 1);
                    simplextable.buffer_delete_artifical_rows.RemoveAt(simplextable.buffer_delete_artifical_rows.Count - 1);

                    return;
                }
                //убираем кнопки
                simplextable.delete_green_grids(dataGridView3);
                //меняем местами переменные обратно
                simplextable.ChangeOfVisualizationVariables_GetOutTheBuffer(dataGridView3);
                //выводим данные из буфера
                simplextable.GetOutOfTheBufferSimplex_ForArtifical();
                //отрисовываем
                if (Radical_or_Decimal)
                {
                    addGridParam_for_simplex_elements(simplextable.simplex_elements, dataGridView3);
                }
                else
                {
                    addGridParam_for_simplex_elements(simplextable.simplex_elements_with_radicals, dataGridView3);
                }

                step--;
                label1.Text = "Метод искусственного базиса. Выбор опорного элемента";
                simplextable.SelectionOfTheSupportElement(dataGridView3);
            }
        }