Да... задачка-то оказалась поинтереснее, чем на первый взгляд.
Решал так.
1. Преобразуем неравенства к виду
Код:
x2 >= S/4 - S/G*x1
x2 <= S/2 + S/(2G)*x1
x2 >= -S + (2S)/G*x1
2. Находим максимальное значение х1, при котором все три неравенства совместимы.
3. В качестве х2 принимаем большее из значений правых частей первого и третьего неравенств при найденном х1.
Код:
Const
S=1;
G=11;
dx=0.01;
Var
x1,x2:Real;
Begin
x1:=0;
While ((S/2+S/2/G*x1)>=(S/4-S/G*x1)) and ((S/2+S/2/G*x1)>=(-S+S*2/G*x1)) do
x1:=x1+dx;
writeln('x1 = ',x1:0:3);
if (S/4-S/G*x1)>(-S+S*2/G*x1) then
x2:=(S/4-S/G*x1)
else
x2:=(-S+S*2/G*x1);
writeln('x2 = ',x2:0:3);
writeln(' Z = ',(S*x1+G*x2):0:3);
Readln
End.