1.计算1!+2!+。。。。。20!
Public Function nFactor(ByVal n As Integer) As Double
'该过程用于计算n!。
Dim i As Integer
Dim temp As Double
----1---- ‘temp = 1
For i = 1 To n
temp = temp * i
Next i
nFactor = ----2---- ‘temp
End Function
Public Sub summary()
'该过程用于计算1!+2!+...+20!,并打印出计算结果。
Dim sum As Double
Dim i As Integer
Dim n As Integer
n = 20
For i = 1 To n
sum = sum + ----3---- ‘nFactor(i)
Next i
Form1.Print "sum=" & ----4---- ‘sum
End Sub
2.求出1-999之间的ARMSTRONG数,并输入
Public Sub ArmstrongNumber()
'该过程是用于求出1--999之间所有的Armstrong数,并输出。
'所谓Armstrong数是指一个数等于它每位上数字的立方和。例如:371=3^3+7^3+1^3,那么371就是一个Armstrong数。
Dim armstrong As Integer
Dim i As Integer
Dim hundred As Integer '百位上的数字
Dim ten As Integer '十位上的数字
Dim one As Integer '个位上的数字
For i = 1 To 999
hundred = ----1---- ‘I\100
ten = Int((i Mod 100) \ 10)
one = ----2---- ‘i mod 10
If ----3---- Then ‘I=hundred^3+ten^3+one^3
Form1.Print i; "is armstrong number"
End If
Next i
End Sub
模块中的counteven过程是用于统计在税基产生的10个两位证书中的偶数的个数并用消息框输出
Option Explicit
Public Sub countEven()
'该过程是用于统计在随机产生的10个两位整数中的偶数的个数并用消息框输出。
Dim a(9) As Integer
Dim count As Integer
Dim I As Integer, n As Integer
Randomize
'******错误1******‘错误1:For I = 1 To 10 改为:For I = 0 To 9
For I = 1 To 10
'*****错误2*****‘错误2:n = Int(Rnd * 90) 改为:n = Int(Rnd * 90) + 10
n = Int(Rnd * 90)
a(I) = n
Form1.Print a(I)
If a(I) Mod 2 = 0 Then
count = count + 1
End If
Next I
'*****错误3*****错误3:msgbox("偶数个数:",count)改为:msgbox("偶数个数:" & count)
msgbox("偶数个数:",count)
End Sub
模块中的COMPOSITOR过程是用于产生20个不大于1000的自然数,并从小到大顺序输出
Option Explicit
Public Sub compositor() '该过程是用于产生20个不大于1000的自然数, '并使用选择分类法按从小到大的顺序输出,相同数不输出。
Const n = 20
Dim a(n), i, p, j, t
For i = 1 To n
a(i)= ---1--- ‘int(rnd*1000) + 1
Next i
For i = 1 To n - 1
p = i
For j = i To n
if a(p)>a(j) then ---2--- ‘p = j
Next j
if ---3---- then t=a(i):a(i)=a(p):a(p)=t ‘P <> i
Next i
Form1.Print a(1)
For i = 2 To n
if ----4---- then Form1.print a(i) ‘a(i) <> a(i - 1)
Next i
Form1.Print
End Sub
模块中的过程RN通过调用ISLEAPYEAR判断某年是否闰年,是-打印“今年是闰年” 否-打印“今年不是闰年” 方法:被4整出,被100都整出
Option ExplicitPublic Sub rn()
'该过程通过调用函数isLeapYear判断某年是否是闰年,若是,则打印"今年是润年"
'否则,打印"今年不是闰年"。
Const year = 2023
If ----1---- Then ‘isLeapYear(Year)
Form1.Print "今年是闰年"
Else
Form1.Print "今年不是闰年"
End If
End Sub
Function isLeapYear(y As Integer) As Boolean
If ----2---- Or (----3---- And ----4----) Then‘y mod 4 <> 0‘y mod 400 <> 0’ y mod 100 = 0
isLeapYear = False
Else
isLeapYear = True
End If
End Function
模块中的TOTAL过程是计算S=7+77+777+……+(N个7),并输出
number是求出N个7uo组成的数
Option Explicit
Public Sub total()
'该过程是计算s=7+77+777+……+(n个7组成的数),并输出。
Const n = 20
Dim s As Single
Dim i As Integer
For i = 1 To n
s = s + ------1------- ‘number(i)
Next i
Form1.Print "s="; s
End Sub
Public Function number( -----2------ ) As Single ‘n as integer
'该函数是求出n个7所组成的数。
Dim k As Integer
number = 0
For k = 1 To n
--------3--------- ‘number = number + 7*10^(k-1)
Next k
End Function
模块中fabonia过程是对一下数列进行计算0.1.2.从第四个数起,每个数都是前面数之和求出地17个数,并求出第几个数起都超过1E+8
Option Explicit
Public Sub Fabonia() '该过程是对以下数列进行运算: '有一个数列,它的前三个数是0,1,2,
'从第四个数起,每个数都是它前面的两个数之和 '求出该数列的第17个数是多少 '求出该数列的第几个数起每个数都超过1E+8
Dim last_one As Long
Dim last_two As Long
Dim this_one As Long
Dim i As Integer
last_one = 1 '数列的第二个数
last_two = 2 '数列的第三个数
i = 4 '从数列的第四个数求起
Do
this_one = last_one + last_two
last_one = ------1------- ‘last_two
last_two = ------2------- ‘this_one
If i = 17 Then
Form1.Print "No:17="; this_one
End If
------3------- ‘I=I+1
Loop While this_one <= 100000000#
Form1.Print "No:";------4------; "is > 1E+8" ‘I-1
End Sub
1.printarray过程 5行5列数字方阵两对角线上的元素为1,其余为2
两列之间空3格,两行之间空2格
Public Sub PrintArray() '下面程序用于显示5行5列的数字方阵'使两对角线上元素均为1,其余均为2’要’求显示的数字方阵两列数字之间空3格,两行之间空一行'只要修改标出出错位置的下面那一条语句
Dim a(5, 5) As Integer
Dim i As Integer, j As Integer
For i = 1 To 5
For j = 1 To 5
错误1‘错误1:If i <> j Or i <> 6 - j Then改为:If i <> j and i + j <> 6 Then
If i <> j Or i <> 6 - j Then
a(i, j) = 2
Else
a(i, j) = 1
End If
'******** 错误2 ********* ‘改为:Form1.Print a(i, j) & Space(3);
Form1.Print a(i, j) + Space(3);
Next j
'******* 错误3 ******* ‘改为:Form1.Print: Form1.Print
Form1.Print: Form1.Cls
Next i
End Sub
2.bubblesort过程是冒泡排序法 Genteratedate过程产生10(1,20)之间互不相同的随机整数 Swap过程交换两个变量的数值 Private Const n = 10
Private a(1 To n) As Integer 'BubbleSort过程是冒泡排序 'Swap过程交换两个变量数 'GenerateData过程产生10个[1,20]之间互不相同的随机整数
Public Sub BubbleSort()
Dim i As Integer, j As Integer
i = 1
Do
For j = i + 1 To n
If a(j) > a(i) Then
'******* 1 ********* ‘改为:Swap a(j), a(i)
Swap (a(j), a(i))
End If
Next j
i = i + 1
'******* 2 ******* ‘改为:Loop While i < n
Loop While i = n
Form1.Print "排序结果"
For i = 1 To n
Form1.Print a(i);
Next i
End Sub
Public Sub GenerateData()
Dim i As Integer
Dim j As Integer
Dim b As Boolean
For i = 1 To n
b = False
Do While Not b
a(i) = Int(20 * Rnd + 1)
b = True
'****** 3 ****** ‘改为:For j = 1 To I - 1
For j = 1 To i
If a(i) = a(j) Then
b = False
Exit For
End If
Next j
Loop
Form1.Print a(i)
Next i
End Sub
'******** 4 ******** ‘改为:Public Sub Swap( a As Integer, b As Integer)
Public Sub Swap(ByVal a As Integer, ByVal b As Integer)
Dim temp As Integer
temp = a
a = b
b = temp
模块中maxline过程用于查找一个5行4列的二维数组中行平均值最大的行并调整至第一行
Dataproduce产生原始数据Average计算各行平均值Printarray打印二维数组和行平均值
Dim a(1 To 5, 1 To 4) As Integer
Dim ave(1 To 5) As Integer
Public Sub MaxLine() '该过程用于查找一个5行4列的二维数组中行平均值最大的行,并将该行所有数据调整到第一行的位置。
Dim i As Integer, j As Integer, temp As Integer
Dim Line_no As Integer '最大平均值的行号 '找出最大平均值所在行
Line_no = 1
For i = 2 To 5
'****** 错误1 ******* ‘改为:If ave(Line_no) <= ave(i) Then
If ave(Line_no) >= ave(i) Then
'****** 错误2 ******* ‘改为:Line_no = i
Line_no = ave(i)
End If
Next I '交换第一行与最大平均值所在行
For j = 1 To 4
temp = a(1, j)
'****** 错误3 ****** ‘改为:a(1, j) = a(Line_no, j)
a(Line_no, j) = a(1, j)
a(Line_no, j) = temp
Next j '交换对应行的平均值
temp = ave(1)
ave(1) = ave(Line_no)
ave(Line_no) = temp '打印交换后的数据
Form1.Print "交换后的数据和平均值"
PrintArray
End Sub
Public Sub DataProduce() '该过程用于产生原始数据。
Dim i As Integer
Dim j As Integer '产生5*4数组
For i = 1 To 5
For j = 1 To 4
a(i, j) = Int(100 * Rnd)
Next j
Next i
End Sub
Public Sub Average() '该过程用于计算各行的平均值。
Dim i As Integer
Dim j As Integer
Dim sum As Integer '计算各行平均值
For i = 1 To 5
sum = 0
For j = 1 To 4
'****** 错误4 ****** ‘改为:sum = sum + a(i, j)
sum = a(i, j)
Next j
ave(i) = sum / 4
Next i
'将数组和平均值打印出来
Form1.Print "原始数据和平均值"
PrintArray
End Sub
Public Sub PrintArray()
'该过程用于打印二维数组和行平均值。
Dim i As Integer
Dim j As Integer
For i = 1 To 5
For j = 1 To 4
Form1.Print a(i, j); Spc(3);
Next j
Form1.Print "平均值="; ave(i)
Next i
End Sub
guess是猜数游戏,有计算机产生一个(1,100)的任意整数,输入猜数后计算机给出提示,如果5次没猜中就结束游戏公布正确
答案
八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案
Public Sub Guess()
'该过程是猜数游戏,由计算机产生一个[1,100]的任意整数,
'输入猜数后计算机给出提示,如果5次后还没有猜中就结束游戏并公布正确答案。
Dim R As Integer
Dim X As Integer
Dim times As Integer
Randomize
R = Int(Rnd * 100) + 1 '产生一个在区间[1,100] 的任意整数
times = 1
Do
X = Val(InputBox("输入猜数X"))
Select Case X
Case R
Form1.Print "猜中了"
Exit Do
'***** 错误1 ****** ‘改为:Case Is > R
Case Is < R
Form1.Print "太大了,继续猜!"
Case Else
Form1.Print "太小了,继续猜!"
End Select
times = times + 1
'****** 错误2 ****** ‘改为:Loop While times <= 5
Loop While times > 5
If times > 5 Then
Form1.Print "猜数失败,游戏结束!"
'****** 错误3 ****** ‘改为:Form1.Print "正确答案为" & Str(R)
Form1.Print "正确答案为" & Str(X)
1.E=1+1/1!+1/2!+…..+1/N! 精确到0.000000000000001
Option Explicit
Public Sub e() '该过程是用于计算e的值并将结果输出,要求精确到0.000000000000001, 'e的计算公式为:e=1+1/1!+1/2!+…+1/n!。
Dim n, term, t
n = 0: term = 1: t = 1
Do
n = n + 1
t= ---1--- ‘t/n
term= ---2----- ‘term+t
Loop While t > 0.000000000000001
form1.print "e="& ---3---- ‘str(term)
End Sub
2.find过程用于找出1到10000中各个位数的数字的阶乘相加之和等于该数,并输出
Option Explicit
Public Sub find()
'该过程是用于从1到10000中找出这样的数,
'该数各个位的数字的阶乘相加之和等于该数,并将结果输出。
Dim k, a, n, i
Dim p As Integer
For k = 1 To 10000
a = LTrim(Str(k))
n = 0
For i= ----1----- ‘1 to len(a)
p = Val(Mid(a, i, 1))
n= -----2---- ‘n + fact(p)
Next i
If n = k Then form1.Print k
Next k
End Sub
Function fact(x As Integer) As Long
'该函数用于计算阶乘
Dim y As Long
Dim i%
y = 1
For i% = 1 To x
y = y * i%
Next i%
----3---- ‘fact = y
End Function
1.被3.5.7.除,余数为1的最小5个整数
Option Explicit
Public Sub find()
'该过程是用于找出被3、5、7除,余数为1的最小的5个整数,并将结果输出来。
Dim countN%, n%
countN = 0
n = 1
Do
n=----1---- ‘n+7
if -----2---- then ‘(n mod 3=1) and (n mod 5=1)
Form1.Print n
countN = countN + 1
End If
Loop ----3----- ‘while countN<5
End Sub
2.猴子摘桃子
猴子一天摘录若干个桃子,当天吃掉一半多一个,第二天吃了剩下的一半多一个……………………….到第七天早上要吃时剩下几个
输出结果
Option Explicit
Public Sub eat()
'该过程是用于计算猴子共摘了多少个桃子。
'(小猴在一天摘了若干个桃子,当天吃掉了一半多一个;
'第二天吃了剩下的一半多一个;
'以后每天都吃尚存的一半零一个,到第7天早上要吃时只剩下一个了),
'并将结果输出来。
Dim n%, i%, x%
x = 1
for i=6 to ---1---- step ----2---- ‘1 ‘-1
-----3---- ‘x=2*(x+1)
Next i
Form1.Print "共有"; x; "个桃子"
End Sub