📄 duiou.pas
字号:
stringgrid7.Enabled :=true;
stringgrid8.Enabled :=true;
stringgrid5.Options:=stringgrid5.Options+[goediting];
stringgrid6.Options:=stringgrid6.Options+[goediting];
stringgrid7.Options:=stringgrid7.Options+[goediting];
stringgrid8.Options:=stringgrid8.Options+[goediting];
stringgrid8.Selection;
button2.Caption :='查看结果';
end
else
begin
if goediting in stringgrid5.options then
stringgrid5.Options:=stringgrid5.Options-[goediting];
if goediting in stringgrid6.options then
stringgrid6.Options:=stringgrid6.Options-[goediting];
if goediting in stringgrid7.options then
stringgrid7.Options:=stringgrid7.Options-[goediting];
if goediting in stringgrid8.options then
stringgrid8.Options:=stringgrid8.Options-[goediting];
button2.Caption :='对偶变换';
end;
which_in_form:=1;
end;
procedure Tduiouform.Button1Click(Sender: TObject);
begin
duiouform.Hide;
end;
procedure Tduiouform.duiouchange;
var i,j:integer;
begin
for i:=1 to leashnum do
stringgrid8.cells[i-1,1]:=stringgrid3.Cells[0,i];
for i:=1 to leashnum do
for j:=1 to varnum do
begin
stringgrid5.Cells [i,j]:=stringgrid1.Cells[j,i];
end;
if label1.Caption='Max(f(x))=' then
begin
for i:=1 to stringgrid4.ColCount do
begin
stringgrid7.Cells[0,i]:=stringgrid4.cells[i-1,1];
if bptiaojianarr[i]=1 then stringgrid6.Cells[0,i]:='>=';
if bptiaojianarr[i]=2 then stringgrid6.Cells[0,i]:='<=';
if bptiaojianarr[i]=3 then stringgrid6.Cells[0,i]:='=';
end;
for i:=1 to stringgrid3.rowcount-1 do
begin
if trim(stringgrid2.Cells[0,i])='>=' then bptiaojian1arr[i]:=2;
if trim(stringgrid2.Cells[0,i])='<=' then bptiaojian1arr[i]:=1;
if trim(stringgrid2.Cells[0,i])='=' then bptiaojian1arr[i]:=3;
case bptiaojian1arr[i] of
1:tiaojian2equal[i].caption:='>=0';
2:tiaojian2equal[i].caption:='<=0';
3:tiaojian2equal[i].caption:='正负不限';
end;
end;
end
else
begin
for i:=1 to stringgrid4.ColCount do
begin
stringgrid7.Cells[0,i]:=stringgrid4.cells[i-1,1];
if bptiaojianarr[i]=1 then stringgrid6.Cells[0,i]:='<=';
if bptiaojianarr[i]=2 then stringgrid6.Cells[0,i]:='>=';
if bptiaojianarr[i]=3 then stringgrid6.Cells[0,i]:='=';
end;
for i:=1 to stringgrid3.rowcount-1 do
begin
if trim(stringgrid2.Cells[0,i])='>=' then bptiaojian1arr[i]:=1;
if trim(stringgrid2.Cells[0,i])='<=' then bptiaojian1arr[i]:=2;
if trim(stringgrid2.Cells[0,i])='=' then bptiaojian1arr[i]:=3;
case bptiaojian1arr[i] of
1:tiaojian2equal[i].caption:='>=0';
2:tiaojian2equal[i].caption:='<=0';
3:tiaojian2equal[i].caption:='正负不限';
end;
end;
end;
end;
procedure Tduiouform.FormHide(Sender: TObject);
var i,j:integer;
begin
if tiaojian1free=false then
begin
for i:=1 to varnum do
begin
tiaojian1x[i].visible:=false;
tiaojian1var[i].visible:=false;
tiaojian1equal[i].visible:=false;
tiaojian1x[i].free;
tiaojian1var[i].free;
tiaojian1equal[i].free;
end;
end;
tiaojian1free:=true;
if tiaojian2free=false then
begin
for i:=1 to leashnum do
begin
tiaojian2x[i].visible:=false;
tiaojian2var[i].visible:=false;
tiaojian2equal[i].visible:=false;
tiaojian2x[i].free;
tiaojian2var[i].free;
tiaojian2equal[i].free;
end;
end;
tiaojian2free:=true;
for i:=1 to stringgrid5.ColCount-1 do
for j:=1 to stringgrid5.RowCount-1 do
begin
stringgrid5.Cells [i,j]:='';
end;
for i:=0 to stringgrid8.ColCount -1 do
begin
stringgrid8.Cells [i,1]:='';
end;
for i:=1 to stringgrid6.RowCount-1 do
begin
stringgrid6.Cells [0,i]:='';
end;
for i:=1 to stringgrid7.RowCount-1 do
begin
stringgrid7.Cells [0,i]:='';
end;
duiouform.Refresh ;
which_in_form:=0;
end;
procedure Tduiouform.Button2Click(Sender: TObject);
var i,j,error_num,a_error_num,b_error_num,c_error_num,var_error_num,tiaojian_error_num:integer;
tiaojian_bp:array[1..50]of string;
begin
if studymode=true then
begin
error_num:=0;
a_error_num:=0;
b_error_num:=0;
c_error_num:=0;
var_error_num:=0;
tiaojian_error_num:=0;
for i:=1 to stringgrid5.ColCount-1 do
for j:=1 to stringgrid5.RowCount-1 do
begin
save_array_grid5[i,j]:=stringgrid5.Cells[i,j];
end;
for i:=0 to stringgrid8.ColCount -1 do
begin
save_array_grid8[i]:=stringgrid8.Cells [i,1];
end;
for i:=1 to stringgrid6.RowCount-1 do
begin
save_array_grid6[i]:=stringgrid6.Cells [0,i];
end;
for i:=1 to stringgrid7.RowCount-1 do
begin
save_array_grid7[i]:=stringgrid7.Cells [0,i];
end;
for i:=1 to leashnum do
begin
tiaojian_bp[i]:=tiaojian2equal[i].caption;
end;
duiouchange;
for i:=1 to stringgrid5.ColCount-1 do
for j:=1 to stringgrid5.RowCount-1 do
begin
if trim(stringgrid5.Cells[i,j])<>trim(save_array_grid5[i,j]) then
begin
//stringgrid5.Cells[i,j] :=clred;
stringgrid5.cells[i,j]:='';
error_num:=error_num+1;
a_error_num:=a_error_num+1;
//stringgrid5.Font.Color:=clblue;//btnface;
end;
end;
for i:=0 to stringgrid8.ColCount -1 do
begin
if trim(stringgrid8.Cells[i,1])<>trim(save_array_grid8[i]) then
begin
stringgrid8.Cells [i,1]:='';
error_num:=error_num+1;
c_error_num:=c_error_num+1;
end;
end;
for i:= 1 to stringgrid6.RowCount-1 do
begin
if trim(stringgrid6.Cells[0,i])<>trim(save_array_grid6[i]) then
begin
stringgrid6.Cells [0,i]:='';
error_num:=error_num+1;
b_error_num:=b_error_num+1;
end;
end;
for i:=1 to stringgrid7.RowCount-1 do
begin
if trim(stringgrid7.Cells[0,i])<>trim(save_array_grid7[i]) then
begin
stringgrid7.Cells [0,i]:='';
error_num:=error_num+1;
tiaojian_error_num:=tiaojian_error_num+1;
end;
end;
for i:=1 to leashnum do
begin
if trim(tiaojian2equal[i].caption)<>trim(tiaojian_bp[i]) then
begin
tiaojian2equal[i].caption:=tiaojian_bp[i];
tiaojian2equal[i].Font.color:=clred;
error_num:=error_num+1;
var_error_num:=var_error_num+1;
end
else tiaojian2equal[i].Font.color:=clblack;
end;
if error_num=0 then
showmessage('答案完全正确!!!')
else
showmessage('共有错误 '+inttostr(error_num)+' 处,其中:'+#13+'技术系数A '+inttostr(a_error_num)+' 处!'+#13+'右端项B '+inttostr(b_error_num)+' 处!'+#13+'价值系数C '+inttostr(c_error_num)+' 处!'+#13+'约束条件 '+inttostr(tiaojian_error_num)+' 处!'+#13+'对偶变量 '+inttostr(var_error_num)+' 处!');
end
else
begin
duiouchange;
end;
end;
procedure Tduiouform.FormClose(Sender: TObject; var Action: TCloseAction);
var i,j:integer;
begin
if tiaojian1free=false then
begin
for i:=1 to varnum do
begin
tiaojian1x[i].visible:=false;
tiaojian1var[i].visible:=false;
tiaojian1equal[i].visible:=false;
tiaojian1x[i].free;
tiaojian1var[i].free;
tiaojian1equal[i].free;
end;
end;
tiaojian1free:=true;
if tiaojian2free=false then
begin
for i:=1 to leashnum do
begin
tiaojian2x[i].visible:=false;
tiaojian2var[i].visible:=false;
tiaojian2equal[i].visible:=false;
tiaojian2x[i].free;
tiaojian2var[i].free;
tiaojian2equal[i].free;
end;
end;
tiaojian2free:=true;
for i:=1 to stringgrid7.ColCount-1 do
for j:=1 to stringgrid5.RowCount-1 do
begin
stringgrid5.Cells [i,j]:='';
end;
for i:=0 to stringgrid8.ColCount -1 do
begin
stringgrid8.Cells [i,1]:='';
end;
for i:=1 to stringgrid7.RowCount-1 do
begin
stringgrid7.Cells [0,i]:='';
end;
for i:=1 to stringgrid6.RowCount-1 do
begin
stringgrid6.Cells [0,i]:='';
end;
duiouform.Refresh ;
end;
procedure Tduiouform.StringGrid6SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if studymode then
begin
whichcellx:=acol;
whichcelly:=arow;
tiaojianform.top:=stringgrid6.top+starty+50;
tiaojianform.left:=stringgrid6.left+startx+6;
{calculate.hide;}
tiaojianform.showmodal;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -