private void MakeExpressions() { int uNum = 1; var noPrefferedRows = new List <int>(); bool isChanged = false; for (int row = 0; row < LimitsCount; row++) { if (exprSigns[row] != "=") { isChanged = true; var oldExpr = A[row].ExprView(varNames); if (exprSigns[row] == "≥") { A.AddVariable(row, -1); } else if (exprSigns[row] == "≤") { A.AddVariable(row, 1); } C.AddVariable(0); var varName = $"u{uNum++}"; varNames.Add(varName); InsertDataGridColumn(dataGridView1, varName, A.VariablesCount - 1, Color.LightGray); isNonNegative.Add(true); if (!IsRightPartsNonNegative(row)) { NegateExpression(row); } if (!IsExpressionPreffered(row, A.VariablesCount)) { noPrefferedRows.Add(row); } var sign = exprSigns[row] == "≥" ? "-" : "+"; textBox1.Text += $"Выражение {oldExpr} является неравенством. " + Environment.NewLine + $"Так как знак {exprSigns[row]}, то введём новую переменную {varName} со знаком {sign}:" + Environment.NewLine + Environment.NewLine; A[row].Sign = "="; exprSigns[row] = "="; } else if (!IsRightPartsNonNegative(row)) { NegateExpression(row); isChanged = true; } } if (isChanged) { PrintLimits(); isChanged = false; } for (int row = 0; row < noPrefferedRows.Count; row++) { MakePrefferedExpressions(noPrefferedRows[row]); isChanged = true; } if (isChanged) { PrintTargetFunction(); PrintLimits(); } }