当前位置: 高中信息技术 / 综合题
  • 1. (2022·金华模拟) 张老师在筹备一次班级活动,活动的场地可以看成由m*n个小方格组成的矩阵(m,n<=100),由于活动需要,计划给这个场地铺上红地毯。当前的地毯都是矩形的,但是大小不一每块地毯铺设位置由左上角(x1,y1)和右下角(x2,y2)两个坐标确定,且刚好铺满该矩形区域。

    张老师想了解每个小方格被多少块地毯覆盖,以便更好地调整地毯铺设位置,他编写了VB程序,实现以下功能:在文本框Text1中输人行数m,在文本框Text2中输入列数n,在Text3中输入每块地毯铺设的坐标x1,y1,x2,y2……坐标之间逗号分隔,地毯数量不超过100),单击计算按钮Commmand1,在列表框List1中显示每个小方格被多少块地毯覆盖。程序运行界面如图所示。

    1. (1) 文本框Text1中输人行数为5,在文本框Text2中输人列数5,在Text3中输人的地毯铺设的坐标为s=1,1,2,2,1,2,3,3则最后输出矩阵a(7)的值为。 (填数字)
    2. (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。

      Dim m As Integer

      Dim n As Integer

      Dim a, b, C, d As Integer

      Dim flag(0 To 10000) As Integer

      Dim sum(0 To 10000) As Integer

      Dim pos(0 To 100) As Integer

      Private Sub Command1_Click()

          List1. Clear

          m = Val(Text1. Text)

          n = Val(Text2. Text)

          s = Text3. Text

          '读取每块地毯坐标,并按顺序存储在pos数组中

          '地毯总数量存储在变量k中

          For i=1 To k

              a= pos(i * 4- 3):b= pos(i * 4- 2):c= pos(i * 4- 1):d= pos(i * 4)

              

          Next i

          For i=1 To m

              

              For j=1 To n

                  sum((i- 1) *n+ j) = sum((i- 1) * n+ j- 1) + flag((i- 1)*n+ j)

                  s=s+Str(sum((i-1)*n+j))

              Next j

              List1. AddItem s

          Next i

      End Sub

      Sub add (ByVal x1 As Integer, ByVal y1 As Integer, ByVal x2 As Integer, ByVal y2 As Integer)

          '按行标记地毯铺设情况

          For i=x1 To x2

              flag((i - 1) * n + y1) = flag((i- 1)*n+y1) + 1

             

          Next i

      End Sub

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