5. 【 加试题】 在一次晚会上,一位魔术师掏出一叠扑克牌,取出其中13张黑桃,预先洗好牌,把牌面朝下,对观众说:“我不看牌,只数一数就能知道每张牌是什么?”魔术师口中念1,将第一张牌翻过来看正好是A;魔术师将黑桃A 放到桌子上,继续数手里的余牌,第二次数1,2 将第一张牌放到这叠牌的下面,将第二张牌翻开,正好是黑桃2,也把它放在桌子上。第三次数1,2,3,前面两张牌放到这叠牌的下面,取出第三张牌,正好是黑桃3,这样依次将13 张牌翻出,准确无误。现在的问题是,魔术师手里牌的原始顺序是怎么样的呢?运行结果如下图所示。
代码如下:
Private Sub Command1_Click()
Dim a(13), i, j, n As Integer ' 定义变量
Form1.Cls
i = 1 ' 将变量i 的值为1
Do While i <= 13 ' 当i 的值小于等于13 时循环
Do While True
j = j + 1
If j > 13 Then
① ' 当j 的值大于13 时,将其重置为1 If a(j) = 0 Then n = n + 1
' 如果该位置元素为0,则n 加1 If n = i Then
② ' 将i 的值放入数组指定的位置中 n = 0 ' 计数器重新为0
Exit Do
End If
Loop
i =
③ '
计数器i 加1Loop
Label1.Caption = " 原来牌的顺序是:"
For k = 1 To 13
Label2.Caption = Label2.Caption +
④ ' 输出扑克牌的原有顺序Next k
End Sub
在画线处填入适当的语句或表达式,将程序补充完整。
①
____________②
__________③
____________④
__________