题库 高中信息

题干

辗转相除法,又名欧几里德算法(Euclidean algorithm),是求两个正整数最大公约数的算法。它是已知最古老的算法之一,其可追溯至3000年前。用辗转相除法来得一个分数的约分后的最简形式的算法如下:

第一步:设两数为a、b,且令a>b;
第二步:a÷b,令r为所得余数,若r=0,算法结束,b 即为最大公约数;若r>0则a←b,b←r,并返回第二步;
第三步:即为约分后的最简形式。
编写VB程序,程序运行界面如第6题图1所示,请根据算法将下列程序补充完整。
Private Sub Command1_Click()
Dim a As Integer, b As Integer, r As Integer 'a、b为分子和分母,r为最大公约数
a = Val(Text1.Text)
b = Val(Text2.Text)
If b =" 0" Then c = MsgBox("分母不能为0"): Exit Sub
'如果分母为0,则提示“分母不能为0”并退出该过程
r = (3分)
Text3.Text =" Str(a" / r)
Text4.Text =" Str(b" / r)
End Sub
Function gys(ByVal m As Integer, ByVal n As Integer) As Integer
'gys函数用于求最大公约数
Dim s As Integer
If m < n Then
t =" m:" m =" n:" n = t
End If
Do While n <> 0
s =" m" Mod n
m = n
n = s
Loop
(3分)
End Function
上一题 下一题 0.99难度 填空题 更新时间:2015-08-19 02:27:14

答案(点此获取答案解析)

同类题4

(加试题)中秋节时,班级组织活动,其中有抽奖环节,小龙在7选3中选考了技术,班主任让小龙编写一个VB抽奖程序,功能如下:窗体装载过程从数据库读取所有同学的相关数据并显示在列表框List1中,抽奖时在文本框Text1中输入要抽出的人数,单击“摇奖”按钮command1,程序进行处理,结果输出在列表框list2中。程序运行界面如下图所示。

实现上述功能的VB程序如下,请回答下列问题:
(1)分析下面的程序代码,可知数据表名为________
(2)请在划线处填入合适的代码。
Dim a(1 To 100) As String '数组大小满足处理要求,学生学号
Dim b(1 To 100) As String '数组大小满足处理要求,学生姓名
Dim i As Integer '学生总数
Dim j As Integer
Dim dd(1 To 100) As Integer
Private Sub Form_Load()
‘从数据库读取全班同学的相关信息,存储在数组a、数组b和变量i中
Dim n As Integer

Dim conn As New ADODB.Connection

Dim rs As New ADODB.Recordset

Dim strSQL As String

    conn.ConnectionString = "Provider=Microsoft.AC
A.OLEDB.12.0;Data Source=" & App.Path & "\1718.accdb"

conn.Open

Set rs.ActiveConnection = conn

strSQL = "SELECT * FROM stuinfo"

rs.Open strSQL

'本过程的其他语句略

End Sub
Private Sub Command1_Click()
Dim ShuruNum As Integer, k As Integer, y As Integer,n As Integer
Randomize
ShuruNum = Val(Text1.Text)
Label4.Caption = ""
For k = 1 To i
dd(k) = 0
Next k
If ShuruNum > 0 And ShuruNum <= i Then
j = 1
Do While j <= ShuruNum
y = Int(Rnd() * i) + 1
If________________  Then' ①
dd(j) = y
j = j + 1
End If
Loop
List2.Clear
For n = 1 To ShuruNum
List2.AddItem ________________ '②
Next n
Else
Label4.Caption = "错误:没有输入中奖人数或超过学生总数"
End If
End Sub
'核对重复,避免同一人再次中奖
Private Function CheckCF(p As Integer) As Boolean
Dim m As Integer,x As Boolean
x = True '初始化
For m = 1 To j
If ________________ Then '③
x = False
Exit For
End If
Next m
CheckCF = x
End Function