学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.15
所属科目:高中信息技术
给定n个单词,将它们分组,使得每组中任意两个单词不含共同字母(不区分大小写)。
按照以下算法可以得到最少的分组:
(1)将第1个单词分到第1组;
(2)尝试将第2个至第n个单词分到已有的分组中:若能分到已有的分组中,则分到第一个符合条件的组;若不能分到已有的组,则分到新生成的组中。

按上述要求,编写VB程序(运行界面如图所示),功能如下:从文本框Text1中读取单词,单击“分组”按钮Command1,在列表框List1中输出具体分组情况,在标签Label1中显示最少分组的数目。


(1)按照上述算法,若有lion、tiger、wolf、cat、deer、bear等6个单词,分组后第一组分到的单词数是________(填具体数值)。
(2)请在划线处填入合适的代码。
Const n=6
Dim a(1 To n)As String
Dim b(n*(n+1))As Integer’数组b分为n段,每一段的第一个元素存储该组分到的单词个数,后n个元素存储该组分到的单词位置
Private Sub Command1_Click()
   Dim i As Integer,j As Integer,cnt As Integer
   ’读取文本框Text1中的n个单词,并存储在数组a中,代码略
   ’为数组b中所有元素赋初值为0,代码略
   b(0)=1:b(1)=1:cnt=1
   For i=2 To n
       cnt=___
   Next i
   ’输出具体分组情况,代码略
   Label1.Caption="最少可分:"+Str(cnt)+"组
   Function   group(x As Integer,m As Integer)As Integer’分组
     Dim i As integer,j As Integer,t As Integer
     Dim flag As Boolean
     flag=False:group=0
     For i=1 To m
       t=(i-1)*(n+1)
       For j=1 To b(t)
        If mutex(a(x),a(b(t+j))=False Then Exit For
Next j
If j>b(t)Then
b(t)=b(t)+1
        b(t+b(t))=x’分到己有的组
        flag=True:Exit For
End If
     Next i
     If flag=False Then
        t=m*(n+1)
        b(t)=b(t)+1
        ___
          group=1
     End If
     End Function
     Function mutex(m As String,n As String)As Boolean
Dim ch_m(25)As Integer,ch_n(25)As Integer’0~25依次对应26个字母
mutex=True
     ’对数组ch_m、ch_n中各元素赋初值0,代码略
     For i=1 To Len(m)
        c=Mid(m,i,1)
        ch_m(( ) )=1’不区分大小写
        Next i
     ’对单词n做与m同样的处理,处理结果保存在数组ch_n中,代码略
     For i=0 to 25
        If ch_m(i)*ch_n(i)=1 Then
            mutex=False:Exit For
        End If
     Next i
   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
我要答疑
编写解析
解析:

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

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