试题

试题 试卷

logo

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

【bj】高中信息技术综合库——枚举算法2

编写“素数查找”程序,实现如下功能:单击“生成”按钮,随机生成50个150至200(包括150和200)之间的正整数,显示在下方,每行显示10个,共5行。单击“筛选”按钮,从上面50个数中筛选出是素数的数,重复的只显示一次。程序运行界面如图所示。

请根据算法将下列程序补充完整。

Private Sub Command1_Click()

    Label3.Caption = ""

    For i = 1 To 50

        a(i) =

        If i Mod 10 = 0 Then

            Label3.Caption = Label3.Caption + CStr(a(i)) + vbCrLf '换行

        Else

            Label3.Caption = Label3.Caption + CStr(a(i)) + " "

        End If

    Next i

End Sub

Private Sub Command2_Click()

    Label4.Caption = ""

    n = 0

    For i = 1 To 50

        For k = 2 To a(i) - 1

            If Then Exit For

        Next k

        If k = a(i) Then

            n = n + 1

        If n = 1 Then b(n) = a(i)

        For j = 1 To n - 1

            If b(j) = a(i) Then: Exit For

            If j = n - 1 Then b(n) = a(i)

        Next j

    End If

Next i

For j = 1 To n

    Label4.Caption = Label4.Caption + + " "

Next j

举一反三
由n行数字组成的数字三角形如图所示。设计一个算法,对于由n行数字组成的数字三角形(数字范围[1,50],计算从三角形的顶至底的路径经过的数字和的最大值,每一步可以从当前点走到左下方的点也可以走到右下方的点。

寻求路径最大值的算法设计如下:

按三角形的行划分,若有n行,则有n-1个步骤

①从底层开始,本身数即为最大值

②倒数第二层的计算取决于底层的数据:

12+6=18,13+14=27,24+15=39,24+8=32;

③倒数第三层的计算取决于底二层的数据:

27+12=39,39+7=46,39+26=65;

④倒数第四层的计算取决于底三层的数据:

46+11=57,65+8=73;

④最后的路径:13—8—26—15—24其和为86。

根据上述算法描述,设计程序界面如下图所示,点击“生成金字塔”按钮,在列表框中生成数字金字塔,点击“寻求路径最大值”按钮,在文本框text1中输出最大值。

依据上述描述设计如下VB程序:

Const n = 5

Dim sx As String

Dim i, j, k, a(1 To 100) As Integer Private Sub Command1_Click() List1.Clear

For i = 1 To n For j = 1 To i

    ①  

sx = sx + Str(a((i - 1) * n + j)) Next j

For k = n To i Step -1 sx = " " + sx

Next k List1.AddItem sx sx = ""

Next i End Sub

Private Sub Command2_Click() For i = n To 1 Step -1

For j = 2 To i

If    ②   Then

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

Else

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

End If Next j

Next i

    ③  

End Sub

请回答下列问题:

小王编写了一个VB程序,该程序的功能是:15个数形成环状,现要分别找出3个相邻的数:使其相加之和最大或最小。如15个数依次为:18,14,42,61,13,19,14,13,28,52,61,58,30,则相邻三数之和最大为62(30+18+14),相邻三数之和最小为31(4+26+1)。

程序运行时,先随机生成15个[1,30]区间内的整数,存储在数组a(0)至a(14),并在文本框Text1中显示;单击“计算”按钮Command1,则在标签Labe14中显示连续三数最大和,在标签Label5中显示连续三数最小和,程序运行界面如图所示。

实现上述功能的VB程序如下,请在划线处填入合适的代码。

Const n=14

Dim a(n) As Integer

Private Sub Form_Load()

'随机生成15个数,存储在数组元素a(0)~a(14)中,并显示在文本框Text1中

End Sub

Private Sub Command1_Click()

    Dim i As Integer, j As Integer, k As Integer

    Dim imax As Integer, imin As Integer

    Dim smax As Integer, sum As Integer, smin As Integer

    smax=0:smin=100

    For i=0 To 14

        j= {#blank#}1{#/blank#}

        k= {#blank#}2{#/blank#}

        sum=a(i)+a(j)+a(k)

        If sum>smax Then

            smax=sum

            imax=i

        End If

        If sum<smin Then

            smin=sum

            imin=i

        End If

    Next i

    Label4.Caption=Str(smax)

    Label5.Caption=Str(smin)

End Sub

返回首页

试题篮