//Закрытие формы.
        private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult result = MessageBox.Show("При закрытии программы данные будут потеряны, продолжить?", "Предупреждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            //Если было соглашение с закрытием формы.
            if (result == DialogResult.Yes)
            {
                //Закрытие форм, которые остались открытыми.
                if (formGSA != null)
                {
                    formGSA.Close();
                }
                if (formMSA != null)
                {
                    formMSA.Close();
                }
                if (formLSA != null)
                {
                    formLSA.Close();
                }
            }
            //Если не было соглашения с закрытием формы.
            else
            {
                e.Cancel = true;   //Отмена закрытия формы.
            }
        }
        /////////////////////////////////////Private методы/////////////////////////////////////

        //************************************************************************************************
        // Меню.
        //************************************************************************************************

        private void генерацияToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //Соглашение с новой генерацией.
            bool generate;

            if (algorithm != null)
            {
                DialogResult result = MessageBox.Show("При генерации задания данные будут потеряны, продолжить?", "Предупреждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                generate = (result == DialogResult.Yes);
            }
            else
            {
                generate = true;
            }

            //Генерация.
            if (generate)
            {
                if (formSetting.ShowDialog() == DialogResult.OK)
                {
                    //Генерация алгоритма.
                    Generator generator  = new Generator();
                    int       nOperator  = formSetting.NumberOperator;
                    int       nCondition = formSetting.NumberCondition;
                    algorithm = generator.generate(nOperator, nCondition, "A", "p", "0", "k");
                    //Отображение алгоритма.
                    showAlgorithm();
                    //Инициализация компонентов для открытия форм.
                    initializationForm();
                    //Настройка статистики.
                    resetStatistics(nOperator, nCondition);
                }
            }


            /////////////////////////////////////Локальные функции/////////////////////////////////////
            //Отображение алгоритма в textBox.
            void showAlgorithm()
            {
                textBoxAlgorithm.Clear();                                                           //Очистка поля для отображения алгоритма.
                for (int i = 0; i < algorithm.NumberOperator - 1; i++)
                {
                    textBoxAlgorithm.Text +=
                        "from " + algorithm.getOperatorVertex(i).Name +                             //Вершина, из которой идет переход.
                        " to " + algorithm.getOperatorVertex(i).VertexTo +                          //Вершина, в которую происходит переход.
                        Environment.NewLine;                                                        //Переход на новую строку.
                }
                for (int i = 0; i < algorithm.NumberCondition; i++)
                {
                    textBoxAlgorithm.Text +=
                        "from " + algorithm.getConditionVertex(i).Name +                            //Вершина, из которой идет переход.
                        " to " + algorithm.getConditionVertex(i).VertexTo_IfTrue +                  //Вершина, в которую происходит переход при истине.
                        " (if true) or" +
                        " to " + algorithm.getConditionVertex(i).VertexTo_IfFalse +                 //Вершина, в которую происходит переход при лжи.
                        " (if false)" +
                        Environment.NewLine;                                                        //Переход на новую строку.
                }
                textBoxAlgorithm.Select(0, 0);                                                      //Снятие выделения после вставки текста.
            }

            //Инициализация компонентов для открытия форм.
            void initializationForm()
            {
                //Активация кнопок схем.
                buttonGSA.Enabled = true;
                buttonMSA.Enabled = true;
                buttonLSA.Enabled = true;

                //Выделение кнопок схем.
                buttonGSA.BackColor = Color.Gold;
                buttonMSA.BackColor = Color.Gold;
                buttonLSA.BackColor = Color.Gold;

                //Закрытие форм, которые остались от прошлого задания.
                if (formGSA != null)
                {
                    formGSA.Close();
                    formGSA = null;
                }
                if (formMSA != null)
                {
                    formMSA.Close();
                    formMSA = null;
                }
                if (formLSA != null)
                {
                    formLSA = null;
                    formLSA.Close();
                }
            }

            //Перезагрузка статистики.
            void resetStatistics(int nOperator, int nCondition)
            {
                formStatistics.resetStatistics();
                formStatistics.NumberOperator  = nOperator.ToString();
                formStatistics.NumberCondition = nCondition.ToString();
                formStatistics.ConditionGSA    = "Не выполнено";
                formStatistics.ConditionMSA    = "Не выполнено";
                formStatistics.ConditionLSA    = "Не выполнено";
            }

            ///////////////////////////////////////////////////////////////////////////////////////////
        }