高中计算机高考时vb试题,浙教版高中信息技术第八单元算法及VB语言基础第5节数组的定义及使用试题...

7. 舟山城市规模较小,人口流动量不大,通常两个完全不认识的陌生人通过2~3个亲戚或朋友的牵线搭桥就可以建立联系。王老师建立了一种人际关系矩阵来模拟这种现象,如有甲,乙,丙,丁,戊,己6人,相互之间认识,在矩阵中用1表示;相互之间不认识,在矩阵中用0表示;对于自身,用0表示,即矩阵左上角到右下角的对角线全为0。如表所示,当前甲和戊不认识,只需通过一人(乙或丁)牵线即可建立联系。

甲乙丙丁戊己

甲011100

乙101011

丙110100

丁101011

戊010100

己010100

王老师设计了一个用来求两个陌生人建立联系所需最少介绍人的VB程序,程序运行时,点击“生成矩阵”按钮Command1,随机产生一个关系矩阵,并在列表框List1中显示。在文本框Text1和Text2中输入两个陌生人的编号,点击“建立联系”按钮Command2,在Labell中输出需要介绍人的最少个数。VB程序运行界面如图所示。

33099e152b0111e72a3b9991d4ac8b38.png                              

对陌生人pl和p2建立联系的方法:

①pl所在行开始,将其认识的人依次添加到联系人数组b中。

②若数组b中未出现p2,依次搜索下一位联系人所在行,将新出现的认识人添加到联系人数组b中。

③在搜索过程中同时记录搜索步数,数组b内全部搜索完毕,若p2还是未出现,则视为无法建立联系,反之输出介绍人的个数。

程序代码如下:

Const n=8

Dim a(1 To n*n) As Integer

Private Sub Command1_Click()

Dim s As String

List1.Clear

For i=1 To nFor j=i To n

If j=i Then

a((i-1)*n+j)=0

Else

a((i-1)*n+j) = Int(Rnd * 2)

__________

End If

Next j

Next i

For i=1 To ns=""

For j=1 To n

s=s+Str(((i-1)*n+j))

Next j

List1.AddItem s

Next iEnd Sub

Private Sub Command2_Click()

Dim b(1To n)    As Integer

Dim ren(1To n)  As Integer      '记录建立联系的步数

Dim find(1To n)   As Boolean     '记录某人是否被添加到联系人数组中

Dim p1 As Integer,p2 As Integer,cur As Integer,k As Integer,

q As Integer

p1=Val(Text1.xt)

p2=Val(Text2.Text)

cur=p1:k=1:q=0

find(cur)=True

Do While find(p)=FalseFor i=1 To n

If a( (cur-1)*n+i)=1 And find(i)=False Then

b(k)=i:k=k+1

find(i)=True

_____________

End If

Next i

q=q+1

If q=k Then Exit Do Else_______________

Loop

If find(p2)=True ThenLabel1.Caption="需要"+Str(ren(p2)-1)+"个介绍人"

ElseLabel1.Caption="无法建立联系"

End IfEnd Sub

请回答以下问题:

(1)如图所示的人际关系,要建立2号和5号之间的联系需要的介绍人数最少为_____。

(2)请在划线处填入合适的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值