KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

请问一道简单的VB题……

[ 7919 查看 / 25 回复 ]

回复:请问一道简单的VB题……

首先你的A,B,C,D都没有付初始值,所以VB自动付了0。
其次你的A,B,C,D都是Form_Load的局部变量,Command1_Click()里面是访问不到的
其实如果你开了Option Explicit的话,你就会发现你的程序还有编译错误...
因为VB默认是不用申明变量就能使用的
分享 转发
2007/2/20凌晨01:14:45,获得称号「大骗子」
orz

QQ群 宅在日本 74481628
宅女腐女招募中
http://www.otkjp.cn/
TOP

回复:请问一道简单的VB题……

Dim a As Single, b As Single, c As Single, d As Single

Private Sub Command1_Click()
a = Text1.Text
b = Text2.Text
c = Text3.Text
d = (a + b + c) / 3
Text4.Text = d
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_Load()
Text1.Text = a
Text2.Text = b
Text3.Text = c
Text4.Text = d
End Sub

最简单的话,这么改应该就行了,其实做得好一点的话,还可以把公式抽到外面去...=v=
2007/2/20凌晨01:14:45,获得称号「大骗子」
orz

QQ群 宅在日本 74481628
宅女腐女招募中
http://www.otkjp.cn/
TOP

回复:请问一道简单的VB题……

看你这个程序大致可以猜出你想做点什么..
就是在画面上输入三个数字,然后按一个按钮,把这三个数字的平均值写到另一个框中。

如果我说的没错的话……
那么你把画面上的三个框填写完毕之后,只是改变了Text1.Text ~ Text3.Text的值而已,
a,b,c的值完全没有变,所以d = (a + b + c) / 3的结果也不会变,永远是0

那么要让他变的话,只有把Text的值赋到相应的变量里去,计算完毕后再把结果写回Text4.Text中,才能在画面中看到结果...

另外,公式抽到外面这句话就当我自言自语吧....对新人讲这个会越讲越糊...orz
2007/2/20凌晨01:14:45,获得称号「大骗子」
orz

QQ群 宅在日本 74481628
宅女腐女招募中
http://www.otkjp.cn/
TOP

回复:请问一道简单的VB题……

起计算作用的是d = (a + b + c) / 3
画面上表示作用的Text1.Text ~ Text4.Text
要做的就是在这两个之前做映射
2007/2/20凌晨01:14:45,获得称号「大骗子」
orz

QQ群 宅在日本 74481628
宅女腐女招募中
http://www.otkjp.cn/
TOP

回复: 请问一道简单的VB题……

原帖由 cheong00 于 2007-9-25 22:37:00 发表
我會這樣寫:

======

Private Sub Command1_Click()
Text4.Text = CStr((CSng(Text1.Text) + CSng(Text2.Text) + CSng(Text3.Text)) / 3)
End Sub

======

我不明白為什麼不教用 a = CSng(Text1.Text) 即把型別轉換都寫進去.
沒那概念而習慣用Varient的話, 以後學其他Language時會很麻煩的...

EDIT: 即使繼續寫VB也很麻煩的... 好像我這樣用一行式寫而不做型別轉換的話, 如果Text1到Text3的內容分別是2, 3, 4的話, Text4的內容就會是(234 / 3) = 78而不是3了


=v=
果然还是没教好啊...
其实我是怕教的东西多会让人混淆,所以就沿着她的程序这么改下来了...
单从VB的特点来讲,字符串和数字类型确实能直接转换,而且在“+”和“&”下面会发生不同种类的类型变换

数字 + 数字 -> 数字(相加)
文字列 + 数字 -> 数字(只要文字列能变换成数字,相加)
文字列 + 文字列 -> 文字列(文字列串联)

数字 & 数字 -> 两个数字的文字列?(这个倒不是很清楚)
数字 & 文字列 -> 数字转换成文字列串联成一个新的文字列
文字列 & 文字列 -> 串联起来的文字列

大致感觉就是这样,所以cheong00兄如果不用转换的话,会把三个数字连起来。

接下来说说个人观点:(就当我今天半夜没事做,一个人自言自语好了orz)
其实我是写C/C++出身的,当然对C/C++以及后来接触的内嵌ASM,还有风格与C/C++相同的C#特别热爱
不单单是因为他们是强类型语言,还有就是对底层有着非常好的控制能力

目前因为做的项目范围比较广,什么语言都有所接触
首先说说VB吧...做过一个项目VB6.0 VB.NET ASP混合的系统...系统逻辑不难,难得就是各种语言之间的接口调用
VB是一种比较简单的语言,主要编写界面,事件驱动,只要写程序片断而不用考虑各种事件之间的影响。
对于新手容易入门,但VB写的时候最好还是把强制类型声明选项打开,有时候编译器帮你掩盖错误不是一件好事情。
相反,根据编译器的提示,自己修改的错误或问题点越多,你能学到的也就也多
VB.NET是微软基于.NET体系,发展出来的一种符合VB语法的语言。其实应该说它和.NET程序的写法类似,
和VB类似仅仅是因为它继承了VB的各种旧的特性,不过在实际运用中,除非是移植的代码,否则不应该用这些旧特性,
因为微软为了在新的.NET体系上实现这些旧的功能,导致内部的代码的效率有所降低。(最明显的就是On Error GoTo 这个语法)

对于VB而言,个人不是很喜欢,毕竟写起来和C/C++完全不一样,没手感了orz
不过VB有一个优点就是COM的调用是非常便利的。


这半年又做了Java的项目...Struts框架=v=
怎么说呢,对于Java这语言来说,确实和C/C++非常像,但还是有几个弱点:
个人认为的第一个弱点本来应该是属于Java的优点——没指针
可能因为我对细节控制特别在意吧,没指针让我在许多处理上都要花费更大的代价去完成一项很简单的工作
这里引出来的问题就是类型转换,Java是没有无符号数的,曾经碰到一个要测试字符编码的问题,
非得把文字的符号数转成非符号数才能进行判断。(如果在C/C++中只要一个类型转换就行了,其实实际代码什么事情都没有做,
因为指针还是一个,只是编译器换了一种类型去解释它)
另一个还是老问题...速度太慢...昨天开了两个Eclipse同时跑高负荷的程序的时候,想停下来怎么也停不下来,死在那里最后竟然自动重启了orz

对于Java,Eclipse提供的IDE环境还是非常不错的,即时的编译错误提示,编译错误仍能调试,CheckStyle和FindBugs的语法和格式的检查
不过对于Java的速度来说,实在有点不爽orz


个人最喜欢的还是C/C++和Win32 API的组合,挖掘操作系统的秘密还是作为一个热爱写程序的程序员的终极目标啊~~~~(远目
2007/2/20凌晨01:14:45,获得称号「大骗子」
orz

QQ群 宅在日本 74481628
宅女腐女招募中
http://www.otkjp.cn/
TOP