请教达人能将这段伪码改成JAVA。
PROGRAM LISTING输出字符串"LINEAR PROGRAMMING"
输出空白行
//LINEAR PROGRAMMING,SIMPLEX METHOD定义数组:A(6,10),B(6)
定义全局变量:Z,M,N,L,E,G,C,C1,C2,M1,M2,M3,P,Q
输出空白行
输出字符串"TYPE '1' FOR MAXIMIZATION,OR '-1' FOR MINIMIZATION";
接受键盘输入 Z
Z=-Z
输出字符串"TYPE NUMBER OF CONSTRAINTS,NUMBER OF VARIABLES";
接受键盘输入 M,NDO {输出字符串"NUMBER OF LESS THAN,EQUAL,GREATER CONSTRAINTS";
接受键盘输入 L,E,G
IF M<>L+E+G THEN 输出字符串"DATA ON CONSTRAINTS INCONSISTENT.TRY AGAIN";}
UNTIL(M=L+E+G)
//初始化工作
C=N+M+G;
C1=C+1;
C2=N+L+G;
M1=M+1;
M2=M+2;
输出空白行
FOR(I=1;I<=M2;I++)
{FOR (J=1;J<=C1;J++)
A(I,J)=0;}
FOR(I=1;I<=M;I++)
{B(I)=0}
FOR(I=1;I<=M;I++)
{FOR (J=1;J<=N;J++)
{READ(A(I,J));
IF (I>L) THEN A(M1,J)=A(M1,J)-A(I,J);
}
IF(I<L)
THEN {
B(I)=N+I;
A(I,N+I)=1;}
ELSE{
B(I)=N+G+I;
A(I,N+G+I)=1;
IF (I>L+E) THEN
{A(I,N+I-E)=-1;
A(M1,N+I-E)=1;
}
}
FOR(I=1;I<=M;I++) READ A(I,C1);
FOR (J=1;J<=N;J++)
{
READ A(M2,J);
A(M2,J)=Z*A(M2,J);
}
输出空白行
输出字符串"YOUR VARIABLES 1 THROUGH",N;
IF L<>0 THEN{ 输出字符串"SLACK VARIABLES",N+1,"THROUGH",N+L}
ELSE{IF G<>0 THEN {输出字符串"SURPLUS VARIABLES",N+L+1,"THROUGH",C;}
ELSE {IF(L<>M)THEN {输出字符串"ARTIFICIAL VARIABLES",C2+1,"THROUGH",C}
ELSE {M3=M1;
调用子函数optimization();
输出空白行
FOR(I=1,I<=M,I++)
{ IF (B(I1)>C2) THEN
{ IF A(I1,C1)>0.00001 THEN{
输出字符串"THE PROBLEM HAS NO TEASIBLE SOLUTION";
跳出程序,结束}
ELSE {
FOR (J1=1,J1<=C2,J++)
{IF(ABS(A(I1,J1))>0.00001)
{R=I1;
S=J1;
调用子函数PIVOTING();
J1=C2;
}
}
}
}
}
}
}
}
输出空白行
M3=M2;
调用子函数optimization();
输出空白行
输出字符串"ANSWERS:";
输出字符串"PRIMAL VARIABLES:";
输出字符串"VARIABLES","VALUE";
FOR (J=1,J<=C2,J++)
{FOR (I=1,I<=M,I++)
{ IF(B(I)=J)TEHN {输出 J,A(I,C1);I=M}
}
}
输出字符串"DUAL VARIABLES:";
输出字符串"VARIABLE","VALUE";
IF(L<>0)THEN { FOR(I=1;I<=L;I++) {输出 I,-Z*A(M2,N+1)}};
输出字符串"VALUE OF B\OBJECTIVE FUNCTION",-Z*A(M2,C1);
输出空白行
输出空白行
程序结束
子函数optimization() //FIRST PRICE OUT COLUMNS
{P=-0.00001
FOR (J=1;J<=C2;J++)
{IF (A(M3,J)<P)THEN
{S=J;
P=A(M3,J);
}
}
IF(P<>-0.00001) THEN
{Q=1.0E+38;
FOR(I=1;I<=M;I++)
{ IF (A(I,S)>0.00001 AND A(I,C1)/A(I,S)<Q) THEN
{R=I;
Q=A(I,C1)/A(I,S);
}
}
IF(Q<>1.0E+38) THEN {调用子函数PIVOTING();}
ELSE {输出字符串"THE SOLUTION IS UNBOUNDED."}
}
}
子函数PIVOTING() //PERFORM PIVOTING
{
P=A(R,S);
FOR(I=1;I<=M2;I++)
{ IF (I<>R) THEN
{FOR (J=1;J<=C1;J++)
{IF(J<>S)THEN
{A(I,J)=A(I,J)-A(I,S)*A(R,J)/P;
IF(ABS(A(I,J))<0.00001) THEN A(I,J)=0;
}
}
}
}
FOR(J=1;J<=C1;J++) A(R,J)=A(R,J)/P;
FOR(I=1;I<=M2;I++)A(I,S)=1;
A(R,S)=1;
B(R)=S;
}DATA 1,1,1,1,1
DATA 0.9,0.8,0.95,0.7,0.3
DATA 0.05,0.05,0.02,0.3,0.7
DATA 0.05,0.15,0.03,0,0
DATA 100,83,14,3
DATA 6.13,7.12,5.85,4.57,3.96
PROGRAM LISTING输出字符串"LINEAR PROGRAMMING"
输出空白行
//LINEAR PROGRAMMING,SIMPLEX METHOD定义数组:A(6,10),B(6)
定义全局变量:Z,M,N,L,E,G,C,C1,C2,M1,M2,M3,P,Q
输出空白行
输出字符串"TYPE '1' FOR MAXIMIZATION,OR '-1' FOR MINIMIZATION";
接受键盘输入 Z
Z=-Z
输出字符串"TYPE NUMBER OF CONSTRAINTS,NUMBER OF VARIABLES";
接受键盘输入 M,NDO {输出字符串"NUMBER OF LESS THAN,EQUAL,GREATER CONSTRAINTS";
接受键盘输入 L,E,G
IF M<>L+E+G THEN 输出字符串"DATA ON CONSTRAINTS INCONSISTENT.TRY AGAIN";}
UNTIL(M=L+E+G)
//初始化工作
C=N+M+G;
C1=C+1;
C2=N+L+G;
M1=M+1;
M2=M+2;
输出空白行
FOR(I=1;I<=M2;I++)
{FOR (J=1;J<=C1;J++)
A(I,J)=0;}
FOR(I=1;I<=M;I++)
{B(I)=0}
FOR(I=1;I<=M;I++)
{FOR (J=1;J<=N;J++)
{READ(A(I,J));
IF (I>L) THEN A(M1,J)=A(M1,J)-A(I,J);
}
IF(I<L)
THEN {
B(I)=N+I;
A(I,N+I)=1;}
ELSE{
B(I)=N+G+I;
A(I,N+G+I)=1;
IF (I>L+E) THEN
{A(I,N+I-E)=-1;
A(M1,N+I-E)=1;
}
}
FOR(I=1;I<=M;I++) READ A(I,C1);
FOR (J=1;J<=N;J++)
{
READ A(M2,J);
A(M2,J)=Z*A(M2,J);
}
输出空白行
输出字符串"YOUR VARIABLES 1 THROUGH",N;
IF L<>0 THEN{ 输出字符串"SLACK VARIABLES",N+1,"THROUGH",N+L}
ELSE{IF G<>0 THEN {输出字符串"SURPLUS VARIABLES",N+L+1,"THROUGH",C;}
ELSE {IF(L<>M)THEN {输出字符串"ARTIFICIAL VARIABLES",C2+1,"THROUGH",C}
ELSE {M3=M1;
调用子函数optimization();
输出空白行
FOR(I=1,I<=M,I++)
{ IF (B(I1)>C2) THEN
{ IF A(I1,C1)>0.00001 THEN{
输出字符串"THE PROBLEM HAS NO TEASIBLE SOLUTION";
跳出程序,结束}
ELSE {
FOR (J1=1,J1<=C2,J++)
{IF(ABS(A(I1,J1))>0.00001)
{R=I1;
S=J1;
调用子函数PIVOTING();
J1=C2;
}
}
}
}
}
}
}
}
输出空白行
M3=M2;
调用子函数optimization();
输出空白行
输出字符串"ANSWERS:";
输出字符串"PRIMAL VARIABLES:";
输出字符串"VARIABLES","VALUE";
FOR (J=1,J<=C2,J++)
{FOR (I=1,I<=M,I++)
{ IF(B(I)=J)TEHN {输出 J,A(I,C1);I=M}
}
}
输出字符串"DUAL VARIABLES:";
输出字符串"VARIABLE","VALUE";
IF(L<>0)THEN { FOR(I=1;I<=L;I++) {输出 I,-Z*A(M2,N+1)}};
输出字符串"VALUE OF B\OBJECTIVE FUNCTION",-Z*A(M2,C1);
输出空白行
输出空白行
程序结束
子函数optimization() //FIRST PRICE OUT COLUMNS
{P=-0.00001
FOR (J=1;J<=C2;J++)
{IF (A(M3,J)<P)THEN
{S=J;
P=A(M3,J);
}
}
IF(P<>-0.00001) THEN
{Q=1.0E+38;
FOR(I=1;I<=M;I++)
{ IF (A(I,S)>0.00001 AND A(I,C1)/A(I,S)<Q) THEN
{R=I;
Q=A(I,C1)/A(I,S);
}
}
IF(Q<>1.0E+38) THEN {调用子函数PIVOTING();}
ELSE {输出字符串"THE SOLUTION IS UNBOUNDED."}
}
}
子函数PIVOTING() //PERFORM PIVOTING
{
P=A(R,S);
FOR(I=1;I<=M2;I++)
{ IF (I<>R) THEN
{FOR (J=1;J<=C1;J++)
{IF(J<>S)THEN
{A(I,J)=A(I,J)-A(I,S)*A(R,J)/P;
IF(ABS(A(I,J))<0.00001) THEN A(I,J)=0;
}
}
}
}
FOR(J=1;J<=C1;J++) A(R,J)=A(R,J)/P;
FOR(I=1;I<=M2;I++)A(I,S)=1;
A(R,S)=1;
B(R)=S;
}DATA 1,1,1,1,1
DATA 0.9,0.8,0.95,0.7,0.3
DATA 0.05,0.05,0.02,0.3,0.7
DATA 0.05,0.15,0.03,0,0
DATA 100,83,14,3
DATA 6.13,7.12,5.85,4.57,3.96
? 对"达人"这个词比较反感。
-------------
同感代码有点长,看一点就烦了......