当前位置: 高中信息技术 / 综合题
  • 1. (2020高三下·浙江月考) 有m(2≤m≤n)个音箱,直线放在n(n≥2)个位置上,第i个位置坐标在a(i)上。每两个音箱相互靠近就会产生干扰,为了解决这个问题,决定把每个音箱都放在离其他音箱尽可能远的位置。为了使任意两个音箱之间的最小距离尽可能大,设计了下面的程序。程序实现了任意两个音箱之间最大的最小距离。如有5个位置,5个位置分别为1,2,8,4,9,有3个音箱,那么最大的最小距离就为3,可以将3个音箱分别放在1,4,8的位置上。

    1. (1) 如果这5个位置分别为5,19,2,18,9,那么3个音箱可以放置的最大的最小距离为
    2. (2) 在划线处补上代码。

      Dim a(1 To 5) As Integer

      Dim n, k As Integer

      Private Sub Form_Load()

          n = Val(Text1.Text): k = Val(Text2.Text)

          ’随机生成n(n>=2)个不重复的0及以上的数字赋值给数组a,代码略

      End Sub

      Private Sub Command1_Click()

      Dim m, l, r As Integer

      For i = 1 To n

          For j = 1 To n - i

              If a(j) > a(j + 1) Then

                  t = a(j): a(j) = a(j + 1): a(j + 1) = t

              End If

          Next j

      Next i

      l = 1: r = a(n) - a(1)

      Do While l <= r

          m = (l + r) \ 2

          If  Then

              l = m + 1

          Else

              r = m - 1

          End If

      Loop

      Label1.Caption = Str(r)

      End Sub

      Function check(ByVal d As Integer) As Boolean

          Dim cow, rgt As Integer

          cow = 1

          rgt = a(1) + d

          For i = 2 To n

              If a(i) >= rgt Then

                  cow = cow + 1

                        ①     

              End If

          Next i

          If      ②      Then

              check = True

          Else

              check = False

          End If

      End Function

       ② 

    3. (3) 有一句带框框的代码有误,请修改为正确代码,让程序可以符合题意。

微信扫码预览、分享更方便