江苏省计算机等级考试常考算法过程集2010
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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