学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.40
所属科目:高中信息技术
模拟某新型病毒传播的过程,已知有n*n个格子(1<=n<=10),某天其中某些格子由于不知名原因感染了病毒,开始影响周围的格子。传染原理如图a所示:
某3行3列的格子初始状态如图a所示,1表示异常(由于不知名原因感染了病毒且具有传染性),0表示正常。除了边上一圈的格子,每个格子周围有8个格子,第一天某正常格子周围超过半数格子异常,则该格子第二天就会变异常,并且带有传染性。传染过程如第16题图b所示,矩阵中1、2、3、4分别表示该格子第1天、第2天、第3天、第4天被感染,0表示未被感染。可以看出该矩阵格子第4天全部被感染。

1

0

0

1

1

0

0

0

0

图a

1

0

0

1

1

0

0

0

0

1

2

0

1

1

0

2

0

0

1

2

3

1

1

0

2

3

0

1

2

3

1

1

4

2

3

4

第一天

第二天

第三天

第四天

                  图b


编写VB程序,运行程序后,在Text1中输入矩阵规模(不超过10),单击“初始化”命令按钮,在List1中输出第一天所有格子的状态,单击“传播”命令按钮,在List2中输出所有格子的最终状态,并在Label2中输出第几天全部被感染或者“不会被全部感染”。
程序运行界面如图c所示。
图c    图d
(1)已知第一天所有格子状态如图d所示,则第_______天所有格子全部被感染。
(2)实现上述功能程序代码如下,完善划线处语句。
Dim a(1 To 100) As Integer '存放格子状态
Dim b(1 To 100) As Integer '辅助作用
Dim zc(1 To 10000) As Integer '记录每一天的正常格子数
Dim n As Integer '存放矩阵规模
Private Sub Command1_Click()
Dim i As Integer, j As Integer, s As String
List1.Clear
n = Val(Text1.Text)
For i = 1 To n
       s = ""
       For j = 1 To n
          a((i - 1) * n + j) = Int(Rnd() * 2)
          s = s + Str(a((i - 1) * n + j))
          If a((i - 1) * n + j) = 0 Then _______________
       Next j
       List1.AddItem s
Next i
End Sub
Private Sub Command2_Click()
Dim i As Integer, j As Integer, tian As Integer, flag As Boolean
List2.Clear
'下面代码实现病毒传染过程
tian = 1: flag = False
Do While zc(tian) > 0
       tian = tian + 1
       For i = 1 To n * n
          If a(i) = 0 Then
             If ________________ Then b(i) = tian
          Else
             b(i) = a(i)
          End If
       Next i
       For i = 1 To n * n
          If b(i) = 0 Then zc(tian) = zc(tian) + 1
          a(i) = b(i)
       Next i
       If ______________ Then flag = True: Exit Do
Loop
'在List2中输出所有格子的最终状态,代码略。
If flag Then
       Label2.Caption = "不会被全部感染"
Else
       Label2.Caption = "第" + Str(tian) + "天全部被感染"
End If
End Sub
'Judge函数用来判断第i行第j列的格子周围的异常格子数是否超过半数,超过半数返回True
Function Judge(i As Integer, j As Integer) As Boolean
'代码略
End Function
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交