试卷征集
加入会员
操作视频

【加试题】从前有一位老渔夫,有一天他捕到了一只大金龟,在金龟的苦苦哀求下,老渔夫放走了金龟,为了报恩,大金龟给老渔夫准备了一份厚礼.大金龟拿出了n件宝贝,每件宝贝都标了编号、体积和价值,还给了他一个规定体积的背包,只要能装入背包的东西都归老渔夫所有,老渔夫如何装包得到的总价值才最大(每件宝贝都可以分割为最小1个单位体积.如:编号001的宝贝,价值100,体积50,最小可以分割为50份).
小林编写了一个VB程序,实现如下功能:程序运行时,首先从数据库读取每件宝贝的编号、价值和体积,分别存储在数组bh、value、volume中,并显示在列表框List1中;在文本框Text1中输入背包的体积,单击“求解”按钮Command1后,在列表框List2中显示依次所取的宝贝的相关信息,最后,在列表框List2中最后一行显示背包的总价值.程序运行界面如图所示.

本题算法思想:
(1)首先计算出每件宝贝的单位价值(单位价值=价值/体积).
(2)由于每件宝贝是可以任意分割的,因此,先将宝贝按单位价值降序排序,然后依次从单位价值最大的宝贝开始装入背包,直到装满整个背包为止.
实现上述功能的程序如下,请在程序画线处填入合适的语句或代码.
①处代码应为
value(i)/volume(i)
value(i)/volume(i)

②处代码应为
ans=ans+value(i)
ans=ans+value(i)

③处代码应为
m=m-value
m=m-value

Dim bh(1 To 20)As String,n As Integer'数组bh存储宝贝的编号,n表示宝贝数
Dim volume(1 To 20)As Long,value(1 To 20)As Long,vpv(1 To 20)As Single'数组
value、volume、vpv分别存储宝贝的价值、体积和单位体积的价格
Private Sub Form_Load(  )
'本过程的功能是从数据库读取每件宝贝的信息,并存储在数组中,本过程其他语句略
End Sub
Private Sub Command1_Click(  )
   Dim m As Integer,i As Integer,j  As Integer,ans As Single
   Dim temp1 As String,temp2 As Integer,temp3 As Integer,temp4 As Single
   m=Val(Text1.Text)
   For i=1 To n
       vpv(i)=

   Next i
   For i=1 To n-1
       For j=n To i+1 Step-1
           If vpv(j)>vpv(j-1)Then
               temp1=bh(j):bh(j)=bh(j-1):bh(j-1)=temp1
               temp2=value(j):value(j)=value(j-1):value(j-1)=temp2
               temp3=volume(j):volume(j)=volume(j-1):volume(j-1)=temp2
               temp4=vpv(j):vpv(j)=vpv(j-1):vpv(j-1)=temp3
           EndIf
       Next j
   Next i
   i=1:j=n:ans=0
   List2.AddItem“编号“+“价值“+“体积“+“单位体积“+“装入背包的体积“
   Do While m>0 And j>=1
       If m-volume(i)>=0 Then

          List.AddItem bh(i) &““& value(i) &““& volume(i) & vpv(i)+&““& volume(i))
       Else
          ans=ans+m*vpv(i)
          List2.AddItem bh(i) &““& value(i) &““& volume(i) &““& vpv(i) &““& m
       EndIf

       i=i+1;j=j-1
   Loop
   List2.AddItem“背包总价值为:“+Str(ans)
End Sub.

【答案】value(i)/volume(i);ans=ans+value(i);m=m-value;①;②;③
【解答】
【点评】
声明:本试题解析著作权属菁优网所有,未经书面同意,不得复制发布。
发布:2024/6/27 10:35:59组卷:7引用:1难度:0.3
相似题
  • 1.根据AQI值判断城市的空气质量。若城市的AQI值(整数)不超过100则空气质量优良,否则空气质量有污染。当输入的AQI值为-1时则退出程序。不要更改程序结构,将题中的①②③④填入正确的语句。
    city=input(“请输入城市名:”)
    AQI=int(input(“请输入空气质量指数AQI的值:”))
    ①______ AQI!=-1:
    if ②______:
    print(city,“的空气质量优良。”)
    ③______:
    print(city,“的空气质量有污染。”)
    city=input(“请输入城市名:”)
    AQI=④(input(“请输入空气质量指数AQI的值:”))
    (1)序号①答案为
     

    A.if
    B.while
    C.for
    D.def
    (2)序号②答案为
     

    A.AQI>=100
    B.AQI<=100
    C.AQI>100
    D.AQI<100
    (3)序号③答案为
     

    A.elif
    B.break
    C.if
    D.else
    (4)序号④答案为
     

    A.int
    B.float
    C.str
    D.else

    发布:2025/1/2 11:0:1组卷:0引用:0难度:0.4
  • 2.一球从100米高度自由落下,每次落地后反跳回原高度的一半,再下落。编写一个C程序,求它在第10次落地时,其经过了多少米?第10次反弹多高?

    发布:2025/1/2 11:0:1组卷:1引用:3难度:0.3
  • 3.利用海伦公式求解三角形面积。已知a,b,c为三角形的三条边长,p为三角形的半周长,即p=(a+b+c)/2,计算此三角形面积S的海伦公式为:。不要更改程序结构,将题中的①②③填入正确的语句。
    import math#导入数学模块
    def hl(a,b,c):#定义求三角形面积的函数
    p=①
    s=math.jye.ai(②)#sqrt用于计算算术平方根
    return ③#返回面积的值
    a,b,c=3,4,5#边长依次赋值
    print(“此三角形的面积S为:“,hl(a,b,c))
    (1)序号①答案为
     

    A. (a+b+c)/2                              B.p*(p-a)*(p-b)*(p-c)
    C. (a+b+c)*2                              D.s
    (2)序号②答案为
     

    A.(a+b+c)/2                              B.p*(p-a)*(p-b)*(p-c)
    C.(a+b+c)*2                                D.(3+4+5)/2
    (3)序号③答案为
     

    A.p                                          B.s
    C.p*(p-a)*(p-b)*(p-c)                  D.0

    发布:2025/1/2 11:0:1组卷:0引用:0难度:0.4
深圳市菁优智慧教育股份有限公司
粤ICP备10006842号公网安备44030502001846号
©2010-2025 jyeoo.com 版权所有
APP开发者:深圳市菁优智慧教育股份有限公司| 应用名称:菁优网 | 应用版本:5.0.7 |隐私协议|第三方SDK|用户服务条款
广播电视节目制作经营许可证|出版物经营许可证|网站地图
本网部分资源来源于会员上传,除本网组织的资源外,版权归原作者所有,如有侵犯版权,请立刻和本网联系并提供证据,本网将在三个工作日内改正