试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:普通

浙江省高中信息技术 进制问题练习

在n个连续的方格内填字母A或B,但相邻两格都不能填B,求所有可能方案。可以用枚举算法解决,此题可以采用进制转换来解决。考虑到只包含了A与B两个字母,我们可以用二进制的0和1来代替。

程序部分代码如下:

Private Sub Command1_Click()

Dim n, m, s, i, j, count As Long

Dim flag As Boolean

Dim a(1 To 100) As Integer

n = Val(Text1.Text)

count = 0

  ①  

For i = 0 to s-1

 m = i

 For j = 1 To n

 a(j) = m Mod 2

 m = m \ 2

Next j

flag = True

For j = 1 To n - 1

 If  ②  Then flag = false: exit For

Next j

If flag = True Then  ③  

Next i

Label1.Caption =“可行方案共”+ Str(count) + “种”

End Sub

(1)、将代码补充完整:① ② ③ 
(2)、若Text1中输入5,则可行方案共种。
举一反三
【加试题】某一条形码是由13位数字组成的编码,其末位是校验码。条形码校验的方法如下:①除校验码之外,求其余12位编码中的奇数、偶数的数字之和;②将偶数的数字之和乘以3,加上奇数的数字之和;③取第②步得到结果的个位数字,用10减去该数字,将得到的结果存入变量m;④若m的值为10,则将m的值修改为0,否则不变;⑤若m和校验码相等则输出“校验码正确!”,否则输出“校验码错误!”。

现编写一个VB程序,实现如下功能:在文本框Text1中产生条形码数字序列,单击“校验”按钮Command1,在标签Label1中输出对应的校验信息,界面如图所示。实现上述功能的VB程序如下,但加框处代码有错,请改正

Private Sub Command1_Click()

     Dim s As String, x As Integer

     Dim n As Integer , js As Integer, os As Integer, m As Integer

     Js=0: os=0

     s = Text1.Text

         {#blank#}1{#/blank#}

If n <> 13 Then

    Label1.Caption = "条形码位数错误!"

Else

    For i = 1 To 12

    {#blank#}2{#/blank#}  

      If x Mod 2 <> 0 Then

        js = js + x

      Else

        os = os + x

      End If

    Next i

    m = os * 3 + js

       {#blank#}3{#/blank#}

    If m=Val(Mid(s,n,1)) Then

      Label1.Caption = "校验码正确!"

    Else

       Label1.Caption = "校验码错误!"

    End If

End If

End Sub

返回首页

试题篮