private void continueButton_Click(object sender, EventArgs e) { int j = 0; try { for (j = 0; j < defaultSolution.Dimension; j++) { defaultSolution[j] = Convert.ToDouble(defaultSolutionTextBoxes[j].Text); } } catch (FormatException) { MessageBox.Show("Введенная вами " + Convert.ToString(j + 1) + "-я компонента не является числом!"); defaultSolutionTextBoxes[j].Text = "0"; return; } catch (OverflowException) { MessageBox.Show("Введенная вами " + Convert.ToString(j + 1) + "-я компонента, к сожалению, является слишком большой!"); defaultSolutionTextBoxes[j].Text = "0"; return; } catch (Exception) { MessageBox.Show("Во время ввода " + Convert.ToString(j + 1) + "-й компоненты произошла неизвестная ошибка!"); defaultSolutionTextBoxes[j].Text = "0"; return; } try { canonicalProblem.SetDefaultBasisSolution(defaultSolution); } catch (ArgumentException) { MessageBox.Show("Введенный вектор, к сожалению, не может быть опорным!"); return; } ResultForm result = new ResultForm(canonicalProblem, previousForm); Close(); result.Show(); }
private void continueButton_Click(object sender, EventArgs e) { int checkedCount = 0; foreach (CheckBox checkBox in vectorCheckBoxes) { if (checkBox.Checked) { checkedCount++; } } if (checkedCount != canonicalProblem.LimitationNumber) { MessageBox.Show("Вы указали недостаточное количество векторов, для того, чтобы они образовывали базис!"); return; } for (int i = 0, indexBasis = 0; i < vectorCheckBoxes.Length; i++) { if (vectorCheckBoxes[i].Checked) { defaultBasisIndexes[indexBasis++] = i; } } try { canonicalProblem.SetDefaultBasis(defaultBasisIndexes); } catch (ArgumentException) { MessageBox.Show("К сожалению указанные вами вектора линейно-зависимы и не могут образовывать базис!"); return; } ResultForm result = new ResultForm(canonicalProblem, previousForm); Close(); result.Show(); }
private void continueButton_Click(object sender, EventArgs e) { int i = 0, j = 0; try { for (j = 0; j < textBoxesObjectiveCoeffs.Length; j++) { ObjectiveFunctionCoefficients[j] = Convert.ToDouble(textBoxesObjectiveCoeffs[j].Text); } } catch (FormatException) { MessageBox.Show("Коэффицинт введенный при x" + Convert.ToString(j + 1) + " в формуле целевой функции не является числом!"); textBoxesObjectiveCoeffs[j].Text = "0"; return; } catch (OverflowException) { MessageBox.Show("Коэффицинт введенный при x" + Convert.ToString(j + 1) + " в формуле целевой функции, к сожалению, слишком велик!"); textBoxesObjectiveCoeffs[j].Text = "0"; return; } catch (Exception) { MessageBox.Show("Во время введения коэффициента при x" + Convert.ToString(j + 1) + " в формуле целевой функции возникла неизвестная ошибка!"); textBoxesObjectiveCoeffs[j].Text = "0"; return; } if (comboBoxMax.Text.Replace(" ", "") == "max") { maxObj = true; } else if (comboBoxMax.Text.Replace(" ", "") == "min") { maxObj = false; } else { MessageBox.Show("Не указан экстремум целевой функции!"); return; } try { for (i = 0; i < textBoxesLimitationMatrix.GetLength(0); i++) { for (j = 0; j < textBoxesLimitationMatrix.GetLength(1); j++) { LimitationMatrix[i, j] = Convert.ToDouble(textBoxesLimitationMatrix[i, j].Text); } } } catch (FormatException) { MessageBox.Show("Коэффицинт введенный при x" + Convert.ToString(j + 1) + " в уравнении/неравенстве №" + Convert.ToString(i + 1) + " не является числом!"); textBoxesLimitationMatrix[i, j].Text = "0"; return; } catch (OverflowException) { MessageBox.Show("Коэффицинт введенный при x" + Convert.ToString(j + 1) + " в уравнении/неравенстве №" + Convert.ToString(i + 1) + ", к сожалению, слишком велик!"); textBoxesLimitationMatrix[i, j].Text = "0"; return; } catch (Exception) { MessageBox.Show("Во время введения коэффициента при x" + Convert.ToString(j + 1) + " в уравнении/неравенстве №" + Convert.ToString(i + 1) + " возникла неизвестная ошибка!"); textBoxesLimitationMatrix[i, j].Text = "0"; return; } try { for (i = 0; i < textBoxesLimitationVector.Length; i++) { LimitationVector[i] = Convert.ToDouble(textBoxesLimitationVector[i].Text); } } catch (FormatException) { MessageBox.Show("Свободный член введенный в уравнении/неравенстве №" + Convert.ToString(i + 1) + " не является числом!"); textBoxesLimitationVector[i].Text = "0"; return; } catch (OverflowException) { MessageBox.Show("Свободный член введенный в уравнении/неравенстве №" + Convert.ToString(i + 1) + ", к сожалению, слишком велик!"); textBoxesLimitationVector[i].Text = "0"; return; } catch (Exception) { MessageBox.Show("Во время введения свободного члена в уравнении/неравенстве №" + Convert.ToString(i + 1) + " возникла неизвестная ошибка!"); textBoxesLimitationVector[i].Text = "0"; return; } for (i = 0; i < comboBoxesRelations.Length; i++) { if (comboBoxesRelations[i].Text == "") { MessageBox.Show("Не указан тип отношения в уравнении/неравенстве №" + Convert.ToString(i + 1) + "!"); return; } } for (i = 0; i < RelationArray.Length; i++) { if (comboBoxesRelations[i].Text.Replace(" ", "") == "<=") { RelationArray[i] = -1; } else if (comboBoxesRelations[i].Text.Replace(" ", "") == ">=") { RelationArray[i] = 1; } else { RelationArray[i] = 0; } } for (j = 0; j < comboBoxesSigns.Length; j++) { if (comboBoxesSigns[j].Text == "") { MessageBox.Show("Не указан знак для переменной x" + Convert.ToString(j + 1) + "!"); return; } } for (j = 0; j < SignArray.Length; j++) { if (comboBoxesSigns[j].Text.Replace(" ", "") == "<=0") { SignArray[j] = -1; } else if (comboBoxesSigns[j].Text.Replace(" ", "") == ">=0") { SignArray[j] = 1; } else { SignArray[j] = 0; } } try { Problem = new LinearProgrammingProblem(LimitationMatrix, LimitationVector, ObjectiveFunctionCoefficients, algorithmPrint, maxObj, RelationArray, SignArray); } catch (ArgumentException) { MessageBox.Show("Введенная ЗЛП не имеет смысла, или содержит ограничения, которые, очевидно, тождественно истинные или ложные!"); return; } CanonicalProblem = new LinearProgrammingProblem(Problem.EqualCanonicalProblem); if (MethodNumber == 0) { Hide(); DefaultBasisInput basisInput = new DefaultBasisInput(CanonicalProblem, this); basisInput.Show(); } else if (MethodNumber == 1) { Hide(); DefaultSolutionInput solutionInput = new DefaultSolutionInput(CanonicalProblem, this); solutionInput.Show(); } else { Hide(); ResultForm result = new ResultForm(Problem, this); result.Show(); } }