str1 = InputBox(\请输入任意的字符串\输入任意字符串 '****错误1***** length = Val(str1) k = 1 Do
'****错误2*****
strleft = Left(str1, k) '从左边起逐个取出一个字符 '****错误3*****
strright = Right(str1, k) '从右边起逐个取出一个字符 '****错误4****
If strleft = strright Then Exit Do End If k = k + 1
Loop While k <= length / 2 If k > length / 2 Then
Form1.Print str1 & \是回文\ Else
Form1.Print str1 & \不是回文\ End If End Sub
程序调试12
Option Explicit Public Sub DToB()
'该过程是将一个十进制正整数转换成为一个二进制数。
'采用连除2取余数的方法,将一个十进制数转换为二进制数。 Dim Dec As Integer Dim Bin As String Dim res As Integer Dim i As Integer
Dec = Val(InputBox(\输入一个十进制数 Form1.Print \十进制数:\ Do
res = -----1------ '求出除以2的余数 Bin = Trim(Str(res)) & -----2------ Dec = -----3------ Loop While ----4------
Form1.Print \转换为二进制数为:\End Sub
程序调试13
Public Sub Guess()
'该过程是猜数游戏,由计算机产生一个[1,100]的任意整数,
'输入猜数后计算机给出提示,如果5次后还没有猜中就结束游戏并公布正确答案。 Dim R As Integer
33
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
Form1.Print \太大了,继续猜!\ Case Else
Form1.Print \太小了,继续猜!\ End Select
times = times + 1 '****** 错误2 ****** Loop While times > 5 If times > 5 Then
Form1.Print \猜数失败,游戏结束!\ '****** 错误3 ******
Form1.Print \正确答案为\ End If End Sub
程序调试14
Option Explicit
Public Sub summary()
'该过程是用于计算s=1+2+2^2+2^3+??,直至s超过1E+16 Dim s As Single Dim i As Integer ------1------ i = 1
------2------ s = s + 2 ^ i ------3------ Loop
Form1.Print \End Sub
程序调试15
Option Explicit Public Sub find()
'该过程是用于找出被3、5、7除,余数为1的最小的5个整数,并将结果输出来。
34
Dim countN%, n% countN = 0 n = 1 Do
n=----1----
if -----2---- then Form1.Print n
countN = countN + 1 End If
Loop ----3----- End Sub
程序调试16
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---
term= ---2-----
Loop While t > 0.000000000000001 form1.print \End Sub
程序调试17
Option Explicit Public Sub qiuN()
'该过程是用于求出满足不等式1+2x+3x^2+4x^3+?+(n+1)x^n<1000的最大n值, '其中x是大于等于1的实数,其值由键盘输入。
Dim x As Single, s As Single, n As Integer, s1 As Single, p As Single x = Val(InputBox(\ s = 1: n = 1 p = x
while ----1---- s1 = s
s = s + (n + 1) * p p=p* ----2---- n= ----3---- Wend
n= ----4-----
form1.Print \End Sub
35
三、多重循环
程序调试18
Public Sub prt()
'该过程是输出由数字组成的如下所示金字塔图案 ' 9 ' 888 ' 77777 ' 6666666 ' 555555555 ' 44444444444 ' 3333333333333 ' 222222222222222 ' 11111111111111111
Dim i As Integer, j As Integer '******** 错误1 ******** For i = 9 To 1
Form1.Print Space(i); For j = 1 To 19 - 2 * i '*********错误2 ******** Form1.Print i Next j
Form1.Print Next i
'*********错误3 ******** End Function
程序调试19
Option Explicit
Public Sub pyramid()
'该过程用于打印数字金字塔 ' 1 ' 222 ' 33333 ' 4444444 ' 555555555 ' 6666666 ' 77777 ' 888 ' 9 Dim i As Integer Dim j As Integer
Dim start As Integer '每行起始空格数 Dim num As Integer '每行数字个数 For i = 1 To 9
If i <= ---1---- Then
36
start = 20 - i num = 2 * i - 1 Else
start = 10 + i num = 19 - 2 * i End If
For j = 1 To ---2----
Form1.Print Tab(start+j);---3---- Next j
Form1.Print Next i End Sub
程序调试20
Public Sub prime()
'该过程是输出100到200之间所有的素数,并统计素数的个数 Dim i As Integer Dim j As Integer Dim k As Integer
Dim t As Integer '统计素数的个数 Dim b As Boolean For i = 100 To 200 b = True
k= ------ 1 ------- j = Int(Sqr(i))
Do While k <= j And b If i Mod k = 0 Then ------ 2 ------ End If
------ 3 ------ Loop
if ------ 4 ------- then t = t + 1 Form1.Print i End If Next i
Form1.Print \End Sub
四、一维数组
程序调试21
Option Explicit
Public Sub aboveave()
' 该过程是产生30个1--100之间的随机整数 ' 计算这30个数的平均值
37