江苏省计算机等级考试常考算法过程集2010

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二、编程题(26分)

【题目】

编写程序,求出巴都万数列(Padovan Sequence)的第n1项到第n2项中的素数数据项。巴都万数列的计算公式如下:

P = 【编程要求】

1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见。

2.运行程序,在两个文本框中分别输入起始项与终止项的序号后按"查找"按钮,则在多行文本框中,按每行10个元素输出数列项数据,并在列表框中输出其中的素数数据项及其

序号;按"清除"按钮,将三个文本框与列表框清空,焦点置于第一个文本

框上;按"结束"按扭,结束程序运行。

3.程序中应定义一个判断素数的通用过程。

Option Explicit

Private Sub CmdFind_Click()

Dim n1 As Integer, n2 As Integer, i As Integer

Dim k As Integer, js As Integer, st As String

n1 = Text1: n2 = Text2

For i = n1 To n2

k = Padovan(i)

st = st & Str(k)

js = js + 1

If js Mod 10 = 0 Then

st = st & vbCrLf

End If

If prime(k) Then

List1.AddItem k & "--(" & i & ")"

End If

Next i

Text3 = st

End Sub

Private Function Padovan(n As Integer) As Integer

If n = 0 Or n = 1 Or n = 2 Then

Padovan = 1

Else

Padovan = Padovan(n - 2) + Padovan(n - 3)

End If

End Function

Private Function prime(n As Integer) As Boolean

Dim i As Integer

If n = 1 Then Exit Function

For i = 2 To Sqr(n)

If n Mod i = 0 Then Exit Function

Next i

prime = True

End Function

Private Sub CmdClear_click()

Text1 = ""

Text2 = ""

Text3 = ""

List1.Clear

Text1.SetFocus

End Sub

Private Sub CmdExit_click()

End

End Sub

【题目】

编写程序,随机生成m行n列由1位非零整数组成的数组;并分别求出数组中所有周边

元素之和与非周边元素(内部)之和。(m、n由InputBox函数输入,缺省值分别为4、5) 【编程要求】

1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及

界面元素大小适中,且均可见;

2.运行程序,按"运行"按钮,出现如图的InputBox函数窗口,分别输入数组行、列数(或

使用缺省值)后按"确定",则生成随机数组并显示在图片框中,并在文本框1与2中分别输出数组周边元素之和与非周边元素(内部)之和;按"清除"按钮,将所有文本框和图片框清空;按"结束"按钮,结束程序运行;

3.程序中应定义一个通用过程,用于求二维数组的周边元素之和与非周边元素之和。

(1)Loop Until k>3 改为Loop Until k=3

(2)Text2=Text2 & color(k) & ":" & b2b(c) & vbCrLf

改为Text2=Text2 & color(k) & ":" & b2b(c(k)) & vbCrLf

(3)Loop Until k=len(s)

改为Loop Until s=""或改为Loop Until Len(s)=0

二:编程题

Option Explicit

Option Base 1

Dim a() As Integer, n As Integer, m As Integer

Dim i As Integer, j As Integer

Dim ext As Integer, ins As Integer

n = InputBox("数组行数m:", "数组处理", 4) m = InputBox("数组列数n:", "数组处理", 5) ReDim a(n, m)

For i = 1 To n

For j = 1 To m

a(i, j) = Int(Rnd * 9) + 1

Picture1.Print a(i, j);

Next j

Picture1.Print

Next i

Call comput(ext, ins)

Text1 = ext

Text2 = ins

End Sub

Private Sub comput(ext As Integer, ins As Integer) Dim i As Integer, j As Integer

For i = 1 To n

For j = 1 To m

If i = 1 Or j = 1 Or i = n Or j = m Then

ext = ext + a(i, j)

Else

ins = ins + a(i, j)

End If

Next j

Next i

End Sub

Private Sub Command2_Click()

Picture1.Cls

Text1 = ""

Text2 = ""

End Sub

相关文档
最新文档