作者fumizuki (小狮子)
看板Visual_Basic
标题Re: [VB6 ] 计算机
时间Fri Jun 10 19:46:44 2005
※ 引述《TrueFeeling (昨日之死)》之铭言:
: 首先要谢谢你拔刀相助,不然我真的不知道该怎麽办^^
: 我还是很多地方不懂想问问^^
: ※ 引述《fumizuki (小狮子)》之铭言:
: : 有学过 Goto 吗?
: : GoSub 跟 Goto 一样,无条件跳到指定行,但 GoSub 可以用 Return 回来。
: 嗯,那这个我懂了
: : 函数名称=运算式 的意思是传回一个值。
: : 这个函数(Eval)的流程是
: : 把 s 运算式拆解并运算,先找加号,再找减号,再找乘号,再找除号,
: : 当四个运算子都被消掉後,只剩下数值,直接传回。 → Eval = Val(s)
: 我看书上说的是这种:
: Function F(X,Y,Z)
: F=X^2+3*Y+Z*X
传回 X的2次方、3Y、XZ 的和
: End Function
: ==
: 呼叫:
: V=F(X,Y,Z)
V=上面那个算出来的结果...
: print V
: ==
: 所以,我还是看不懂orz
: : 例如:(以下红色的数字代表第几次执行 Eval,黄色代表传回值)
: : 原式
: : 00 → "3 + 4 + 5 * 6 - 7"
: : 去除所有空白 Replace(s, " ", "")
: 嗯,这部分有3个问题:
: 1.当按钮按下去後,Text1.Text显示的字串如何传到程式码?
: (因为我没有看到Function中有和Text1.Text的转换关系)
Print Eval(Text1.Text)
: 2.为何字串中间会有空白?
: (因为数入Text1.Text的时候并没有空白)
假设一定会有空白...这样程式比较「活」,不会因为有空白就不能计算了...
: 3.
: Static c As Integer: c = c + 1
: If c = 1 Then s = Replace(s, " ", "")
: 这段程式码中的c作用是什麽?
进入函数加一,离开减一;第一次执行才做 Replace 的动作。
: : 01 → "3+4+5*6-7"
: : 找加号,将此运算式分割成前後两组运算式
: : 两运算式相加 Eval(op1) + Eval(op2)
: 这部分
: 1.分成两组运算式後,他们的资料型别(DataType)是?
没指定型态的话,预设是 Variant ,不固定的型态,由实际资料内容决定。
: (因为如果还是字串的话,再用+连结好像又回到原本的字串了
我给它字串,它就是字串;我给它整数,它就是整数。
字串加数字等於字串,数字加数字等於数字,字串加字串还是字串。
因为 Eval 最後传回值一定是个数值,所以不会有型态的问题。
(传入的值一定是字串)
--
VB 程式设计 仓木麻衣 PTT 星爷板 行列输入法
======================================================
Visual_Basic MaiKuraki Stephen Array
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.58.156.43