"justify"> float minR = matrix [0] [0];
minRInd = 0;
for (int i = 0; i <= ReadFile.colCount; i + +) {
if (matrix [i] [0]
minR = matrix [i] [0];
minRInd = i;
}
}
// перевіряємо вибір користувача
while (minRInd! = SimplexView.getSelectedCol () - 1) {
JOptionPane.showMessageDialog (null, "провідний стовпець обраний
невірно ");
err = true;
break M1;
}
int temp = minRInd;
float [] proportion = new float [ReadFile.rowCount];
// обчислюємо допоміжний стовпець відносини
for (int i = 1; i <= ReadFile.rowCount; i + +) {
if (i == tempCInd) {
proportion [i-1] = java.lang.Float.NaN;
}
else {
proportion [i-1] = matrix [ReadFile.colCount] [i]/
matrix [temp] [i];
}
}
TableView.fillProportion (tableName, proportion, tempCInd);
}
return err;
}
// вибір ведучої рядка в режимі навчання
static boolean userChooseRow (float [] [] matrix, JTable tableName) {
lim = false;
boolean err = false;
M1: {
// перевіряємо, обмежена чи цільова функція на множині дод. рішень
for (int i = 0; i <= ReadFile.rowCount; i + +) {
if (matrix [minRInd] [i]> 0)
lim = true;
}
if (! lim) {
JOptionPane.showMessageDialog (null, "функція не обмежена на
безлічі припустимих рішень ");
break M1;
}
// знаходимо провідний рядок
float minC = matrix [ReadFile.colCount] [1]/matrix [minRInd] [1];
minCInd = 1;
for (int i = 1; i
if (matrix [ReadFile.colCount] [i]/matrix [minRInd] [i]
minC = matrix [ReadFile.colCount] [i]/matrix [minRInd] [i];
minCInd = i;
}
}
for (int i = tempCInd + 1; i <= ReadFile.rowCount; i + +) {
if (matrix [ReadFile.colCount] [i]/matrix [minRInd] [i]
minC = matrix [ReadFile.colCount] [i]/matrix [minRInd] [i];
minCInd = i;
}
}
// перевіряємо вибір користувача
System.out.print ("user:" + SimplexView.getSelectedRow () + "; min:"
+ minCInd);
while (minCInd! = SimplexView.getSelectedRow ()) {
err = true;
JOptionPane.showMessageDialog (null, "ведуча рядок обрана
невірно ");
break M1;
}
}
return err;
}
// перебудовує симплексну таблицю
static void userBuildNewTable (float [] [] matrix, JTable tableName) {
// виводимо з базису базисну змінну [0] [minCInd], вводимо в базис
// змінну [minRInd] [0]
ReadFile.varCol [minCInd-1] = ReadFile.varRow [minRInd];
// будуємо нову симплексну таблицю
// ділимо провідну рядок на провідний елемент [minRInd] [minCInd]
float temp = matrix [minRInd] [minCInd];
for (int i = 0; i <= ReadFile.colCount; i + +) {
matrix [i] [minCInd]/= temp;
}
// отримуємо нулі в провідному стовпці
for (int j = 0; j
float minTemp = matrix [minRInd] [j];
for (int i = 0; i <= ReadFile.colCount; i + +) {
matrix [i] [j] + = matrix [i] [minCInd] *-minTemp ; p align="justify">}
}
for (int j = minCInd +1; j <= ReadFile.rowCount; j + +...