学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.40
所属科目:高中信息技术
七灯游戏是一款经典的益智类游戏。游戏中,有七盏灯排成一圈,如图a所示,初始时灯的开关状态随机生成,操作其中某一盏灯,则可以切换该灯的“开/关”状态,同时,这盏灯对面的两盏灯也会切换“开/关”状态,如图b所示:

图a

图b
图a为初始状态,操作圈中的灯,则该灯与对面的两盏灯都会切换“开/关”状态,如图b所示。假设这些灯的编号为0到6号,“开/关”状态随机产生,并输出到列表框List1中,接着需要从中选出数盏灯进行操作,使得最后所有灯都打开(已证明方案-一定存在且唯一),并在列表框List2中输出灯的编号。
程序采用枚举策略,一一尝试对每盏灯状态进行“切换"操作,“1”表示对当前灯进行切换,“0”表示不操作。
程序运行界面如图c所示。

图c
(1)0-6号灯的初始状态为“关 关 关 开 关 关 开”,如对1号灯进行切换操作,对面随之切换灯的编号是:_________________和_____________
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Dim a(0 To 6)As Integer,b(0 To 6) As Integer
Private Sub Command1_Click()

Dim i As Integer,x As Integer,pos As Integer

Dim flag As Boolean

List2.Clear

For i = 0 To __________________

    x = i:pos = 0:flag = True

    For j = 0 To 6

        b(j)= a(j)

    Next j

    Do While x > 0

        If x Mod 2 = 1 Then

            b(pos)= 1 - b(pos)

            b((pos + 3) Mod 7) = 1 – b((pos + 3) Mod 7)

            __________________

        End If

        pos = pos + 1

        x = x \ 2

    Loop

     For j = 0 To 6

         If ________ Then flag = False:Exit For

     Next j

     If flag Then

        pos = 0

        Do While i > 0

           If i Mod 2 = 1 Then List2.AddItem  "第" + CStr(pos)+  "号"

           i = i \ 2

           pos = pos + 1

        Loop

        Exit For

     End If

   Next i

End Sub

Private Sub Form_Load()’随机生成初始数据

    Dim i As Integer

    Randomize

    List1.Clear

    For i = 0 To 6

        a(i)= Int(Rnd * 2)

        If a(i)= 1 Then

            List1.AddItem  "第" + CStr(i) +  "号:"+  "开"

        Else

            List1.AddItem "第" + CStr(i) +  "号:" +  "关"

        End If

     Next i

End Sub

编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

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
我要答疑
编写解析
解析:

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

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