1. 某公司的货车从1号站点出发驶向n号站点(n<=100),给途径的站点运送货物。每个站点都有货物要送到后续的某一个站点。货车运送货物的费用取决于货车上当前的货物重量。货车从第i号站点出发到达i+1号站点的费用计算标准如下:

车上最重货物的重量*0.8+车上其余货物的总重量

已知每个站点所需运送的货物的重量和目标站点,小明编写了一个VB程序计算货车从1号站点到达第n号站点的货运费用总额,程序运行界面如图所示。

算法提示:为提高算法效率,小明使用数组d和数组q按货物送达目标站点的先后厢序的顺序记录相关信息。第x件送达站点的货物的序号为d(x),该货物送达目标站点时本上最重的货物的重量为q(x)。

若各个站点货物的送达站点和重量信息如第16题图所示,货车到达各个站点时数组d和数组q的状态如下。

(1) 若有4个站点,货物送达站点顺序为4、3、4,重量分别为9、7、10,则费用合计
(2) 请在划线处填入合适的代码。

Const n = 100

Dim f(n) As Integer, w(n) As Integer, q(n) As Integer, d(n) As Integer

'数组f保存送达站点,数组w保存货物重量

Dim sum As Integer, ans As Double, i As Integer, st As Integer, t As Integer

Private Sub Form_Load()

    '读取1~n每个站点的送达站点和货物重量,依次存放在数组{和数组w中

End Sub

Private Sub Command1_Click()

    sum= 0: ans =0: st=1

    For i=1 To n- 1

        '装载第i站点的货物,更新数组d和数组q

       

        t = w(i)

        Do While f(d(k - 1)) > f(i)

            d(k)=d(k-1)

            q(k)=q(k-1)

            If q(k-1)>t Then t=q(k-1)

            k=k-1

        Loop

        d(k) = i

        q(k) = w(i)

        Do While And k>=st

            q(k) = w(i)

            k=k-1

        Loop

        '卸载货物

        Do While f(d(st)) = i

            sum = sum - w(d(st))

            st=st+1

        Loop

        '计算费用

        sum = sum + w(i)

        ans= ans + q(st) * 0.8+

    Next i

    Label1.Caption = "共需费用:" + Str(ans)

End Sub

【考点】
循环结构语句及程序实现;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 普通
能力提升
真题演练
换一批