Sub数量计算() Dim i Asdim integerr 这个代码哪里出错了?

博客访问: 1280597
博文数量: 372
博客积分: 8284
博客等级: 中将
技术积分: 4587
注册时间:
天行健,君子以自强不息
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
例1、通过随即函数产生两个正整数,求着两个数之和并显示出来。
Private Sub form_click()Dim a As Integer, b As Integer, c As IntegerRandomizea = Int(90 * Rnd + 10)b = Int(90 * Rnd + 10)c = a + bPrint "产生的两个随机数:"; a, bPrint "和数:"; cEnd Sub
500)this.width=500;" border=0>
例2、过年倒计时。
Private Sub Form_click()thatday = #2/14/2011# '春节具体时间tian = thatday - Date '春节具体时间减去系统当前时间xingqi = WeekdayName(Weekday(thatday) - 1) '春节那天星期几nian = Year(Date)yue = Month(Date)ri = Day(Date)shi = Hour(Time)fen = Minute(Time)miao = Second(Time)Print "现在离2011年春节还有: "; "天"Print "2011年春节星期:&&&&&& "; xingqiPrint "现在日期是:&&&&&&&&&& "; "年"; "月"; "日"Print "现在时间是:&&&&&&&&&& "; "时"; "分"; "秒"
500)this.width=500;" border=0>
例3、If Else语句的使用。两个数比较大小,输出较大者。
Private Sub Command1_Click()Dim a!, b!, c!a = Text1b = Text2If a >= b Then&&& t = aElse&&& t = bEnd IfText3.Text = t
500)this.width=500;" border=0>
例4、分数等级评定。
Private Sub Command1_Click()&Dim fenshu!fenshu = Text1.TextSelect Case fenshu&&& Case Is >= 90&&& Text2.Text = "优秀"&&& Case Is >= 80&&&& Text2.Text = "良好"&&& Case Is >= 60&&&& Text2.Text = "及格"&&& Case Else&&&& Text2.Text = "不及格"End SelectEnd Sub
Private Sub Command2_Click()EndEnd Sub
Private Sub Form_Load()
500)this.width=500;" border=0>
例5、计算某个月的天数。
Private Sub Command1_Click()Dim year!, mon!, days!, leap As Booleanyear = Val(Text1.Text)mon = Val(Text2.Text)Select Case mon&&& Case 1, 3, 5, 7, 8, 10, 12&&&&&&& days = 31&&& Case 4, 6, 9, 11&&&&&&& days = 30&&& Case 2&&&&&&& If (year Mod 400 = 0) Then&&&&&&&&&&& leap = True&&&&&&& ElseIf (year Mod 4 = 0 And year Mod 100
0) Then&&&&&&&&&&& leap = 1&&&&&&& Else&&&&&&&&&&& leap = 0&&&&&&& End If&&&&&&& If (leap) Then days = 29 Else days = 28End SelectLabel3.Caption = Str$(year) + "年" + Str$(mon) + "月份天数为: "'将year和mon转换成字符型的数据Picture1.Print days'Picture1.CurrentX = (Picture1.ScaleHeight - TextHeight(Str$(days))) / 2'?????????????????????End Sub
Private Sub Command2_Click()EndEnd Sub
500)this.width=500;" border=0>
例6、累加求和。
Private Sub Command1_Click()Dim i%, sum%sum = 0For i = 1 To 100 Step 2&&& sum = sum + iNext iText1.Text = sum
Private Sub Command2_Click()EndEnd Sub
500)this.width=500;" border=0>
例7、inputbox 和 picture的使用。
InputBox(提示[,标题][,默认值][,x坐标位置][,y坐标位置])
参数的后三项可以省略!
Private Sub Form_click()Dim title$, s$Dim m1$, m2$, m3$, m4$Dim name$, age$, sex$, home$title = "学生基本信息"m1 = "请输入学生姓名"m2 = "请输入学生年龄"m3 = "请输入学生性别"m4 = "请输入学生住址"s = Chr(10) + Chr(10) + "然后单击确定"& 'chr(10)即换行's = ""name = InputBox$(m1 + s, title)age = InputBox$(m2 + s, title)sex = InputBox$(m3 + s, title)home = InputBox$(m4 + s, title)ClsPicture1.Print& '换行Picture1.P Spc(2); Spc(2); Spc(2); Spc(2)'Picture1.P Spc(2); Spc(2)
500)this.width=500;" border=0>
例8、滚动条。
Private Sub Form_Load()Label4.Caption = Str(HScroll1.Value)Label5.Caption = Str(HScroll2.Value)Label6.Caption = Str(HScroll3.Value)r = 0: g = 0: b = 0Text1.BackColor = RGB(r, g, b)End Sub
Private Sub HScroll1_Change()r = HScroll1.ValueLabel4.Caption = Str(HScroll1.Value)Text1.BackColor = RGB(r, g, b)End Sub
Private Sub HScroll2_Change()g = HScroll2.Value
Label5.Caption = Str(HScroll2.Value)Text1.BackColor = RGB(r, g, b)End Sub
Private Sub HScroll3_Change()b = HScroll3.ValueLabel6.Caption = Str(HScroll3.Value)Text1.BackColor = RGB(r, g, b)End Sub
500)this.width=500;" border=0>
需要注意的是:
三个滚动条要设置范围:其值应该在0-255之间,因此max为255,min为0.否则达不到调色板的效果!!!
例9、单选框复选框的使用。
Private Sub Check1_Click()Text1.Font.Italic = Not Text1.Font.Italic&&& '是否斜体End Sub
Private Sub Check2_Click()Text1.Font.Underline = Not Text1.Font.Underline& '是否有下划线End Sub
Private Sub Check3_Click()Text1.Font.Bold = Not Text1.Font.Bold&&&&&&&&&&& '是否粗体End Sub
Private Sub Option1_Click()If Option1.Value Then Text1.ForeColor = QBColor(9)&&&& '蓝色End Sub
Private Sub Option2_Click()If Option2.Value Then Text1.ForeColor = QBColor(10)&&&& '绿色End Sub
Private Sub Option3_Click()If Option3.Value Then Text1.ForeColor = QBColor(12)&&&& '红色End Sub
500)this.width=500;" border=0>
例10、print函数的用法
Private Sub Form_click()Dim strtext$, textw%strtext = "程序设计"PrintPrint Tab(10); "Tab函数的使用方法"Picture1.CurrentY = (Picture1.ScaleHeight - TextHeight(strtext)) / 2Picture1.Print "VB"; Tab(3); strtextPicture2.CurrentY = (Picture2.ScaleHeight - TextHeight(strtext)) / 2textw = TextWidth("Spc函数的用法:")CurrentX = (Form1.Width - textw) / 2CurrentY = Form1.Height / 2Print "Spc函数的用法"Picture2.Print "VB"; Spc(3); strtextEnd Sub
500)this.width=500;" border=0>
例11、定时器的应用。
注:将定时器的interval设置成1000,即每秒触发一次。代码如下:
Private Sub Form_Load()Label3.Caption = Time()Label4.Caption = Time()End Sub
Private Sub Timer1_Timer()Label4.Caption = Time()End Sub
500)this.width=500;" border=0>
可以发现“现在系统时间”不停地刷新,每秒钟跳动一次。
例12、msgbox用法。
Private Sub Form_click()Dim m1$, m2$, r%m1 = " 密码错误!是否继续?"m2 = "密码检查对话框"'msgbox(提示[,按钮值][,标题])r = MsgBox(m1, 34, m2)Print r '测试r的返回值End Sub
500)this.width=500;" border=0>
点击“终止”、“重试”、“取消”分别输出的返回值依次是:3,4,5
例13、窗体的Click和Dblclick事件。
Private Sub Form_click()Form1.Caption = "欢迎使用!"Form1.Move 0, 0End Sub
Private Sub Form_dblclick()Form1.Caption = "Visual Basic!"End Sub
500)this.width=500;" border=0>
500)this.width=500;" border=0>
单击窗体时,出现界面一
双击窗体时,先出现界面一,然后马上跳转到界面二。因为一次双击包含一个单击事件。
例14、多窗体的使用。
(单击窗体一,显示窗体二;单击窗体二,显示窗体一)
窗体一对应的代码:
Private Sub Form_Load()Form1.Picture = LoadPicture("H:\11.jpg")End Sub
Private Sub form_click()Form1.HideForm2.ShowEnd Sub窗体二对应的代码:
Private Sub Form_Load()Form2.Picture = LoadPicture("H:\33.jpg")&&& '加载图片End Sub
Private Sub form_click()Form2.Hide& '第二号窗体隐藏Form1.Show& '第一号窗体显示End Sub
效果如下:
注:事先应在电脑的H盘放两张名字分别为11和33的jpg图片
例15、控件数组。(通过选择字号改变文本框中文字的大小。)
Private Sub Form_Load()Option1(0).Value = True '选定第一个单选框Text1.FontSize = 10 '设定文本框中文字的字号End Sub
Private Sub Option1_Click(Index As Integer)&&& Select Case Index&&&&&&& Case 0&&&&&&&&&&& Text1.FontSize = 10&&&&&&& Case 1&&&&&&&&&&& Text1.FontSize = 12&&&&&&& Case 2&&&&&&&&&&& Text1.FontSize = 14&&&&&&& Case 3&&&&&&&&&&& Text1.FontSize = 16&&&&&&& Case 4&&&&&&&&&&& Text1.FontSize = 18&&&&&&& Case 5&&&&&&&&&&& Text1.FontSize = 30&&& End Select
500)this.width=500;" border=0>
例16、计算多边形面积。(子程序的调用)
Private area As Single'在模块的通用声明段定义模块级变量Private Sub tri_area(a As Single, b As Single, c As Single)Dim s As Singles = (a + b + c) / 2area = Sqr(s * (s - a) * (s - b) * (s - c))End Sub
Private Sub Command1_Click()Dim area1 As Single, area2 As SingleCall tri_area(7, 7, 7)area1 = areaCall tri_area(4, 4, 7)area2 = areaPrint "多边形面积为:"; area1 + area2End Sub
Private Sub Command2_Click()EndEnd Sub
500)this.width=500;" border=0>
例17、函数的调用。(阶乘运算器)
Private a%, b%, c%
Private Sub Command1_Click()Text1.Text = ""a = Val(InputBox("请输入数据A:"))Text1.Text = aEnd Sub
Private Sub Command2_Click()Text1.Text = ""b = Val(InputBox("请输入数据B:"))Text1.Text = bEnd Sub
Private Sub Command3_Click()Text1.Text = ""c = Val(InputBox("请输入数据C:"))Text1.Text = cEnd Sub
Private Function fact(n As Integer)Dim i As Integer&&& fact = 1 '此句不可缺少&&& For i = 1 To n&&& fact = fact * i&&& NextEnd Function
Private Sub Command4_Click()Dim sum As Longsum = fact(a) + fact(b) + fact(c)Text1.Text = a & "!+" & b & "!+" & c & "!=" & sum'Print sumEnd Sub
Private Sub Command5_Click()a = 0: b = 0: c = 0: Text1.Text = "欢迎进行下一轮阶乘运算!"End Sub
500)this.width=500;" border=0>
例18、鼠标高级事件。(鼠标绘图)
Private line_width As Single
Private Sub form_mousedown(button As Integer, shift As Integer, x As Single, y As Single)&&& If button = 1 Then&&& CurrentX = x&&& CurrentY = y&&& line_width = 1&&& DrawWidth = line_width&&& End IfEnd Sub
Private Sub form_mousemove(button As Integer, shift As Integer, x As Single, y As Single)Dim line_col As LongIf button = 1 Then&&&&&&& If shift = 1 Then&&&&&&&&&&&&&&& '判断是否按下shift键&&&&&&&&&&& line_col = RGB(255, 0, 0)&&&&&&& ElseIf shift = 2 Then&&&&&&&&&&& '判断是否按下ctl键&&&&&&&&&&& line_col = RGB(0, 255, 0)&&&&&&& ElseIf shift = 4 Then&&&&&&&&&&& '判断是否按下alt键&&&&&&&&&&& line_col = RGB(0, 0, 255)&&&&&&& End If&&&&&&& line_width = line_width + 0.1&&&& '线宽每次增加0.1&&&&&&& DrawWidth = line_width&&&&&&& Line -(x, y), line_colEnd IfEnd Sub
500)this.width=500;" border=0>&
例19、线宽与线形。
Private Sub Form_click()Dim i%, j%j = 300DrawWidth = 1For i = 0 To 6&&& DrawStyle = i&&& Line (200, j)-(2400, j)&&& j = j + 300Next iEnd Sub
500)this.width=500;" border=0>
注: DrawStyle决定线型。DrawWidth决定线宽,且当其值大于1时,看不出线型的效果!
例20、Pset用法。(仿真输出图片)
Private Sub Command1_Click()Dim i%, j%Const pianX = 200Const pianY = 200Const max = 100Form1.ScaleMode = 3 '采用像素为单位Form1.DrawMode = 13 '用屏幕前景色划线For i = 0 To max&&& For j = 0 To max&&&&&&& PSet (i + pianX, j + pianY), Picture1.Point(i, j)&& '进行仿真画图&&& Next jNext iEnd Sub
Private Sub Form_Load()Form1.Scale (0, 0)-(100, 100)Picture1.Scale (0, 0)-(100, 100)End Sub
500)this.width=500;" border=0>
点击后效果如下:
500)this.width=500;" border=0>
阅读(2883) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。以下试题来自:
单项选择题有如下程序:
Private Sub Form_Click()
Dim i As Integer, Sum As Integer
For i=2 To 10
If i Mod 2<>0 And i Mod 3=0 Then
程序运行后,单击窗体,输出结果为______。A.12B.30C.24D.18
为您推荐的考试题库
你可能感兴趣的试题
1A.记录类型animal不能在Form1中定义,必须在标准模块中定义B.如果文件"c:\vbTest. dat"不存在,则Open命令执行失败C.由于Put命令中没有指明记录号,因此每次都把记录写到文件的末尾D.语句“Put #1, , rec”将animal类型的两个数据元素写到文件中2A.11B.10C.9D.83A.10 5B.12 5C.10 7D.12 745A.13. 45. 8B.135C.1 4 7D.无数据输出
热门相关试卷
最新相关试卷 VB复习题及参考答案_IT认证_资格考试/认证_教育专区。复习题及参考答案 一、...VB程序设计复习题及答案 11页 免费
VB练习题 190页 免费 ©2016 Baidu 使用...  VB 上机练习题(一) 1、求 10 个三位正整数中的偶数之和,正整数用随机函数 Rnd 产生,或由 InputBox 函数输 入。 Dim i, sum, x%, a$ Private Sub ...  VB题库 (1)_IT认证_资格考试/认证_教育专区 暂无评价|0人阅读|0次下载|举报文档 VB题库 (1)_IT认证_资格考试/认证_教育专区。'---'【程序设计】 '---...  VB习题1[1][1].3 27页 1下载券 计算机二级考试VB填空练... 5页 免费 扫描...判断题: 1、VB 中,每一种对象有着不同的属性设置,每一种对象能识别的事件...  A.双击窗体设计器的任何地方 B.按下 F4 键 C.单击工程窗口中的“查看代码”按钮 D.选择“视图”下拉菜单中的“代码窗口” 4.在 VB 中可以作为容器的是___...  vb习题集和答案_其它课程_高中教育_教育专区。第一章 选择题 1. VB 是一种面向对象的可视化程序设计语言,采取了( (A)事件驱动 (C)从主程序开始执行 2. 以下...  VB练习题-第六章答案 7页 免费v​b​练​习​题​答​案 暂无评价|0人阅读|0次下载|举报文档vb 答案 简单应用题 1.Option Explicit PrivatenCount...  VB练习题_其它_高等教育_教育专区。编写程序: 1.设计如图所示界面。编程序实现,运行时,单击“出题”按钮,产生任意两个 [0,100]之间的随 机整数;单击“计算”...  vb期末试卷及答案1 5页 10财富值如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 vb练习题 隐藏&& 一、单选题 1. 若...vb 程序填空_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
vb 程序填空
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩23页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢博客访问: 8971
博文数量: 31
注册时间:
鏆傛棤浠嬬粛
ITPUB论坛APP
ITPUB论坛APP
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: IT综合技术
本栏文章均来自于互联网,版权归原作者和各发布网站所有,收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。
 混合四则运算可以利用别人写好的控件,再就利用Excel(前提是安装了Excel)。我这
里说的,是自己编写代码。
  例如文本框有这样一个算式:3 * 7 - ((2 + 18)/5 + 6),如何编写代码?
  看起来是个很简单的式子,写起代码来却大费周章,耗费了我整整一天的时间。编程的
思路最后归纳为:
1.整个算式当作字符串来处理,只是在具体计算时化为数值,结果再转为字符串
2.不断地用计算结果替换原单项计算式,例如用“21”替换“3 * 7”
解题步骤如下:
预备工作:
1.去掉字符串中的空格,上式就变成了这样的字符串:“3*7+((2+18)/5+6)”
2.将小写字母转换为大写字母
开始计算:
1.利用函数 FindPlace 查找括号的位置,取出括号及其中的算式作为一个子字符串。如上
 式中的“(2+18)”。
2.将去掉括号的算式(如果没有括号就将整个算式)交给 analyze 函数,按照乘、除、加
 减的顺序进行计算。
3.在进行单项计算时,先确定运算符的位置,以这个位置为基础,分别获取前后两个数据和
 运算符本身,如上式中的“2”、“18”、“+”。这个步骤中最麻烦的是对“-”号的处
 理,因为它既可表示减法,也可以表示负数。
4.根据运算符计算(这是最轻松的步骤了)
5.每进行完一次计算,都要将结果转换成字符串,去替换由数据和运算符组成的子字符串。
 如“20/5+6”,除完后,用商去替换“20/5”这个子字符串,得到一个新的字符串:
6.重复步骤1-5,上式就依次变成:“3*7+10”、“21-10”、“11”,结果在Text2显示。
  笔者根据以上叙述编写了代码。本代码还可以对2/8/16进制的数据进行四则运算(但计
算结果均为10进制),这三种进制的输入规则是:
1.在数据前加一个标识字母(大小写均可),B表示2进制,O表示 8进制,H表示16进制,除
 了这三个字母和16进制数字 A-F,计算式中不能出现其它字母
2.这三种进制的输入数据不能是小数,如:“100+H0.5”(16进制小数 0.5)是非法数据
下面就动手实验:
  新建一个窗体,添加两个文本框和一个按纽,其中Text1用于输入计算式,Text2用于显
示计算结果。点击按纽就开始计算
代码如下:
Option Explicit
Private Sub Command1_Click()
Dim st As String, MyData1 As String, MyData2 As String
st = Text1
If Len(st)
0: st = AnyToDec(st, 16): Loop '将16进制转换为10进制
Do While InStr(st, "B") > 0: st = AnyToDec(st, 2): Loop '将2进制转换为10进制
Do While InStr(st, "O") > 0: st = AnyToDec(st, 8): Loop '将8进制转换为10进制
Do While InStr(st, "(") > 0 '如果有括号
MyData1 = FindPlace(st)
MyData2 = MyData1
MyData1 = Mid$(MyData1, 2, Len(MyData1) - 2) '从取出的字符串中去掉左右括号
MyData1 = analyze(MyData1)
st = Replace(st, MyData2, MyData1) '用计算结果替代原字符串中的括号内容
Text2 = analyze(st)
Function FindPlace(S As String) As String '查找括号的位置,取出括号及其中的算式
Dim i As Integer, k As Integer
Do While i > 0
i = InStr(i, S, "(")
If i > 0 Then k = i: i = i + 1
If k > 0 Then i = InStr(k + 1, S, ")"): FindPlace = Mid$(S, k, i - k + 1)
End Function
Function analyze(nSt As String) As String
Dim i As Integer, z As String
Do While InStr(nSt, "*") > 0: nSt = operate(nSt, "*"): Loop '如果有*
Do While InStr(nSt, "/") > 0: nSt = operate(nSt, "/"): Loop '如果有/
Do While InStr(nSt, "+") > 0: nSt = operate(nSt, "+"): Loop '如果有+
Do While InStr(nSt, "-") > 0 '如果有-
If Left(nSt, 1) = "-" Then
For i = 2 To Len(nSt)
z = Mid$(nSt, i, 1): If InStr("*/+-", z) > 0 Then Exit For
If i > Len(nSt) Then Exit Do '如果 - 号后面没有其它运算符,那么这是一个负数
nSt = operate(nSt, "-")
analyze = nSt
End Function
Function operate(S As String, sign As String) As String '完成一次运算
Dim k1 As Integer, k2 As Integer, S1 As String, S2 As String, z As String, n As String, i As Integer
i = InStr(2, S, sign) '获得运算符位置
z = Left$(S, i - 1) '获得运算符前的字符串
For k1 = Len(z) To 1 Step -1
n = Mid$(z, k1, 1): If k1 = 1 And n = "-" Then n = "." '如果是负数而不是减号
If InStr(".", n) = 0 Then Exit For
k1 = k1 + 1
S1 = Mid$(z, k1) '获得运算符前的数据
z = Mid$(S, i + 1) '获得运算符后的字符串
For k2 = 1 To Len(z)
n = Mid$(z, k2, 1): If k2 = 1 And n = "-" Then n = "." '如果是负数而不是减号
If InStr(".", n) = 0 Then Exit For
k2 = k2 - 1
S2 = Mid$(z, 1, k2) '获得运算符后的数据
z = Mid$(S, k1, k2 + i - k1 + 1) '获得一个完整的算式字符串用于替换
operate = Replace(S, z, Format(nCount(S1, S2, sign)))
End Function
Function nCount(Num1 As String, Num2 As String, symbo As String) As Double
Select Case symbo
Case "+": nCount = Val(Num1) + Val(Num2)
Case "-": nCount = Val(Num1) - Val(Num2)
Case "*": nCount = Val(Num1) * Val(Num2)
Case "/": If Num2
"0" Then nCount = Val(Num1) / Val(Num2) Else MsgBox "除数不能为0!计算结果是错误的"
End Select
End Function
Function AnyToDec(mSt As String, Num As Integer) As String '2/8/16进制转为10进制
On Error GoTo 100
Dim i As Integer, k As Integer, A As Integer, L As Integer, j As Integer, d As String, B As Double
'查找标识所在的位置
k = InStr(mSt, "H")
If k = 0 Then k = InStr(mSt, "B")
If k = 0 Then k = InStr(mSt, "O")
For i = k + 1 To Len(mSt) '获取数据
d = Mid$(mSt, i, 1): If InStr("*/+-)", d) > 0 Then Exit For
d = Mid$(mSt, k + 1, i - k - 1)
L = Len(d)
For j = 0 To L - 1 '开始转换
A = Asc(Mid$(d, L - j, 1)) - 48
22 Then A = 0
If A > 9 Then A = A - 7
If A > 0 Then B = B + A * Num ^ j
AnyToDec = Replace(mSt, Mid$(mSt, k, i - k), Format(B)) '用10进制字符串替换原2/8/16进制字符串
End Function
Function checkstring(ByVal S As String) As String '判断计算式是否合法
Dim i As Integer, j As Integer, k As Integer, z As String, z1 As String, z2 As String
For i = 1 To Len(z)
If InStr(".ABCDEFHOB()+-*/", Mid$(z, i, 1)) = 0 Then S = "错误!发现非法数据": GoTo endcheck
z = S: i = 0
Do While InStr(z, "(") > 0: i = i + 1: z = Mid(z, InStr(z, "(") + 1): Loop '统计左括号数量
z = S: j = 0
Do While InStr(z, ")") > 0: j = j + 1: z = Mid(z, InStr(z, ")") + 1): Loop '统计右括号数量
j Then S = "错误!表达式中括号不成对": GoTo endcheck
z2 = "H": z1 = "": GoSub 100: If z1
"" Then S = z1: GoTo endcheck
z2 = "O": z1 = "": GoSub 100: If z1
"" Then S = z1: GoTo endcheck
z2 = "B": z1 = "": GoSub 100: If z1
"" Then S = z1
checkstring = S
Exit Function
j = j + 1: j = InStr(j, S, z2): If j = 0 Then Exit Do '查找标识所在的位置
For i = j + 1 To Len(S) '获取数据
z = Mid$(S, i, 1): If InStr("*/+-)", z) Then Exit For
z = Mid$(S, j + 1, i - j - 1): If InStr(z, ".") Then z1 = "错误!2/8/16进制数据不能是小数": Exit Do
If z2 = "O" Then GoSub 200: If z1
"" Then Exit Do
If z2 = "B" Then GoSub 300: If z1
"" Then Exit Do
Loop While j > 0
For i = 1 To Len(z) '检查8进制数据
If InStr("", Mid$(z, i, 1)) = 0 Then z1 = "错误!发现非法八进制数据": Exit For
For i = 1 To Len(z) '检查2进制数据
If InStr("01", Mid$(z, i, 1)) = 0 Then z1 = "错误!发现非法二进制数据": Exit For
End Function
  OK,现在随便输入几个算式看看:
输入“b1010-((o2+18)/h5-h6)-o3*o7”,计算得:-9
输入“1010-hff*((o7-18)/ha-h6)/3*o7”,计算得:1429
输入“(hf*10*ha-b1010*50)/o31”,计算得:40
完全正确![@more@]
阅读(724) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。}

我要回帖

更多关于 dim x as integer 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信