st7.Addhem(GQ(k)) Elselfk<=261888 Then List8.Addhem(GQ(k)) Elselfk<=294624 Then 一77— 万方数据 List9.Addhem(GQ(k)) EiseIfk<=327360 Then Listl0。
Addltem(GQ(k)) ElseIfIc<=360096 Then Listll:AddItem(GQ(k)) Elselfk<=392832 Then Listl2.Addltem(GQ(k)) End If Al MN=MN+9 MC=1 Forj=l To m MC=-MC。
Val(Mid(MN,j.1)) Next j lfMV<>MC Then Go To A Else End If MB=0 MX=0 For j=l T0 rn MB=MB+j MX=MX+Val(M.d(MN.j。
1)) Next j lfMB<>MX Then GoTo A Else End If MY=0 MZ一0 For j一1 To m MY—MY+j‘2 MZ=MZ+Val(Mid(MN.j,1))‘2 Next i IfMY<>MZ Then GoTo A EIse End If Next k Print Spc(6);”第m!个排列应是最大数,据此可以判断结果的正确性。
一 Print Spc(6)I”GQ(”;MV;”)=”;GQ(MV) End Sub Private Sub Command2wClick() Min=InputBox(”请输入初始比较数据,其值比列表框中最小一个稍大即可一,一输入数据一,,2000,4000) For k=l To MV Min=Ilf(Min<GQ(k),Min,GQ(k)) Next k For k=l To MV If Int(GQ(k)/10‘ITI)=Int(Min/10‘m)Then Listl3.AddItem(GQ(k)) Else E:nd If 一78—万方数据 Next k End Sub Private Sub Command3--Click() For k=1 To MV Max=11f(Max>GQ(k),Max,GQ(k)) Next k For k=1 To MV IfInt(GQ(k)/10‘m)=Int(Max/10‘m)Then Listl4.Addltem(GQ(k)) Else End If Next k End Sub Private Sub Form~Load() Text2.Text=”警告:”&vbCrLf&”(1)一定要先按计算按钮!”&vbCrLf&”(2)MV的值是m!,(即m的阶乘)不能稍大。
公共段中声明的变量GQ()的下标上界是九的阶乘(9 1),主要是避免临时输入。
,, Text2.ForeColor=RGB(255,0.O) Text2.FontSize=10 Text2.BorderStyle=0 Commandl.Caption=”计算按钮” CommandlI FontName=”隶书” Command 1.FontSize=1 1 Command2.Caption=”最短工期” Command2.FontName=“隶书” Command2.FontSize=11 Command3.Caption=”最长工期” Command3.FontName一”隶书” Command3.FontSize=1l Textl=”注意:”&vbCrLf&”列表框中所列数字的后m位表明施工顺序,前面几位数字表明施工工期,m等于工程段数。
例如,若是6个施工段,则m等于6。
即,后6位表示施工的排列顺序,而前面几位数则表示施工的工期,如“187123564”,“123564”表示施工顺序是:A工段、B工段、C工段、E工段、F工段、D工段。
而“187”则表示施工工期是187天。
又如“218514623”,这里变了一下施工顺序:514623(E—A—D—F—B—C),工期则长达218天。
” Textl.ForeColor=RGB(255,0,O) Textl.FontSize=10 Text 1.BorderStyle=0 EndS7ub 界|.f【j 一79— 万方数据