题目

一位茶叶商人从南方收购了 n 吨新茶,由于产地偏僻不通铁路,茶商准备先沿水路运到武汉,再发往全国各地销售。码头上只有 10 条规格不同的小货船,每条船舶都不足以装载全部茶叶。各船舶的最大载重量分别为 W(i)吨,需 f(i)费用(该艘船每吨的费用)(1≤i≤10)。当然,由于茶商是老主顾,而且货船舶还可以搭配载其他货物,因此船主比较客气,声称可以装一部分货物,按实际装多少货物计费(例如,只装了 1/3 吨,则费用为 1/3*f(i))请问茶商应该选择哪些货船,使得费用最低。若有费用相同,输出用船数最少的。 解题思路:随机生成 10 条船的载重量[1,10]和费用[1,30],然后将它们按费用从小到大排序,若费用相同,则载重大的在前,运输时,先把费用低的船装满,再按费用向下将船装好,运输。 (1) 根据图a所示,可以发现有 (填数字)个对象没有 caption属性。 图 a (2) 根据上述描述设计如下 VB 程序,请在划线处填入合适的代码。 Dim f(1 To 10) As Integer, w(1 To 10) As Integer, b(1 To 10) As Integer Private Sub Command2_Click()     Dim n As Integer, count As Integer, yf As Integer     Dim s As String, i as integer     n = Val(Text1.Text)     count = 0     yf = 0     cz = n     i = 1     Do While n > 0         If n >= w(b(i)) Then                     Else             yf = yf + n * f(b(i))         End If         count=count+1         s = s + Str(b(i)) + "号船"         i=i+1             Loop     Label2.Caption = "总计费用为:" + Str(yf) + "元 " + Str(count) + " 条船,分 别为 " + s End Sub Private Sub form_load()     Dim t As Integer, i as integer, j as integer     List1.Clear     List1.AddItem "编号 载重 费用'"     For i = 1 To 10         w(i) = Int(Rnd * 10 + 1)         f(i) = Int(Rnd * 30 + 1)         b(i) = i         List1.AddItem Str(b(i)) + " " + Str(w(i)) + " " + Str(f(i))     Next i     For i = 1 To 9         For j = 10 To i + 1 Step -1             If  Then                 t = b(j): b(j) = b(j - 1): b(j - 1) = t             End If         Next j     Next i End Sub 答案: 【1】2 【1】yf=yf+w(b(i))*f(b(i))【2】n=n-w(b(i))【3】f(b(j))<f(b(j-1)) or f((b(j))=f(b(j-1) and w(b(j))>w(b(j-1))
信息技术 试题推荐
最近更新