⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 duiou.pas

📁 线性规划CAI应用程序及原代码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
             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 + -