求解VB编程题(初学者)

[复制链接]
查看11 | 回复5 | 2010-10-19 19:54:27 | 显示全部楼层 |阅读模式
题目是求给定一定范围数的回文数。
这题很纠结,一直不知道错在那里,程序运行,输入数据范围,可是就出不来结果,而且呈没响应状态。小弟在此恳请高手指点。
Private Sub Command1_Click()
Dim a As Integer, b As Integer
Dim i As Integer, x As Integer, fan1 As Integer
a = Val(Text1.Text)
b = Val(Text2.Text)
For i = a To b

x = i

Do

Text3.Text = Text3.Text & Str(x) & "=>"

Call fanxu(x, fan1)

x = x + fan1

Loop Until huiwen(x)

Text3.Text = Text3.Text & Str(x) & vbCrLf
Next i
End Sub
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text1.SetFocus
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub fanxu(ByVal n As Integer, ByVal m As Integer)
Dim x As Integer
m = 0
Do
x = n Mod 10
m = x + m * 10
n = n \ 10
Loop While n0
End Sub
Private Function huiwen(ByVal n As Integer) As Boolean
Dim ch As String, s1 As Integer, hws As Boolean
ch = CStr(n)
s1 = Len(ch)
hws = False
For k = 1 To s1 / 2

If Mid(ch, k, 1)Mid(ch, k + 1 - k, 1) Then Exit Function
Next k
hws = True
End Function
不好意思,现在补上题目,题目如下:
【编程要求】
1.在文本框1,2中分别输入验证数据的起始值和终止值,按“验证”按钮,则将验证过程如图所示输出到多行文本框中;按“清除”按钮,将3个文本框清空,并将焦点置于文本框1上;按“退出”按钮,结束程序运行
2.程序中应定义一个求反序数的通用过程和一个验证回文数的通用过程。
3.程序参考界面如图(补充问题时是不能再插入图片了,我就说下吧)
我输入: 从351到353
文本框3出现:351=> 504=> 909

352=> 605=> 1111

353=> 706=> 1313=> 4444

回复

使用道具 举报

千问 | 2010-10-19 19:54:27 | 显示全部楼层
恕我直言,要查错远远比解题麻烦多了.所以,如果可以,请把题目补充出来,晚一点我再看回来.祝好运. 我也贴一段代码:Function IsHuiWen(n As Double) As Boolean '判断是否回文数 IsHuiWen = False
Dim m, i As Double m = 0 i = n
While i > 0
m = 10 * m + i Mod 10
i = i \ 10
WendIf n = m Then IsHuiWen = True End Function'以下是修改LZ的 command1
回复

使用道具 举报

千问 | 2010-10-19 19:54:27 | 显示全部楼层
我给你改一下吧,省去了许多代码Private Sub Command1_Click()Dim a As Integer, b As IntegerDim n As Integera = Val(Text1.Text)b = Val(Text2.Text)For n = a To b
If Trim(Str(n)) = Str
回复

使用道具 举报

千问 | 2010-10-19 19:54:27 | 显示全部楼层
Text3.Text = Text3.Text & Str(x) & "=>"
回复

使用道具 举报

千问 | 2010-10-19 19:54:27 | 显示全部楼层
这么简单的题目,压根就没那么麻烦。验算:small=val(text1)//小的数字big=val(text2)//大的数字For num=small To big//求期间的回文数doevents//限制循环If StrReverse(num)=num Then list1.additem num//验证,是的话在列表框加Nex
回复

使用道具 举报

千问 | 2010-10-19 19:54:27 | 显示全部楼层
不知道你的题目是什么,但是程序没有响应,肯定是你的3个循环当中有的跳不出来,另外,调程序不能只看结果,应该设好断点,监控好关键变量才行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行