ягатися в будь-якій точці цього обмеження, що лежить між двома оптимальними кутовими точками, і, відповідно, будь-яка з цих точок є оптимальним рішенням ЗЛП.
3. Опис інтерфейсу розробленого програмного продукту
Інтерфейс програми, що реалізує графічний метод розв'язання задач лінійного програмування:
програмування графічний інтерфейс лінійний
В
В
Альтернативним є варіант організації інтерфейсу, коли основні області: область введення даних для реалізації методу і область побудови розташовані в одній робочій області. Запропонований альтернативний варіант є оптимальним з точки зору мінімізації часових інтервалів, оскільки при такому розташуванні основних областей, користувач не буде змушений здійснювати зайві переміщення миші між зазначеними областями і зайві кліки по робочій області, проте, існуючий інтерфейс є більш компактним, дозволяє відображати область побудови графіків в більшому масштабі, тому дана реалізація інтерфейсу є найбільш кращою. Таким чином, реорганізація аналізованого інтерфейсу не доцільно. p align="justify"> Спроектований інтерфейс є оптимальним, лаконічним і простим у використанні.
3. Лістинг
Клас В«LineВ»
class Line {
float a, b, c;
Line () {
}
Line (float a, float b, float c) {. a = a;. b = b;. c = c;
}
(Point p1, Point p2) {(p1.y - p2.y, p2.x - p1.x, p1.x * p2.y - p2.x * p1.y);
}
(float A, float B, Point point) {(new Point (point.x + B, point.y - A), point);
}
boolean isParalellWithLine (Line line) {k = a * line.b - line.a * b; MathUtil.isEqualWithEplsilon (k, 0);
}
Point getIntersection (Line line) {(isParalellWithLine (line)) null;
znam = 1/(a ​​* line.b - line.a * b);
x = (b * line.c - line.b * c) * znam; y = (c * line.a - line.c * a) * znam;
new Point (x, y);
}
double getDistanceToPoint (Point p) {(a * px + b * py + c)/Math.sqrt (a * a + b * b);
}
float getA () {- a;
}
void setA (float a) {. a = - a;
}
float getB () {- b;
}
void setB (float b) {. b = - b;
}
float getC () {c;
}
void setC (float c) {. c = c;
}
Str...