Re: [VB6 ] 計算機

看板Visual_Basic作者 (小獅子)時間19年前 (2005/06/10 19:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串13/51 (看更多)
※ 引述《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
文章代碼(AID): #12gNlpNW (Visual_Basic)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 13 之 51 篇):
10
19
2
3
文章代碼(AID): #12gNlpNW (Visual_Basic)