全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1214
推到 Plurk!
推到 Facebook!

請教各位前輩

答題得分者是:cobraliu
sa74312
一般會員


發表:1
回覆:2
積分:0
註冊:2008-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-04-09 12:47:26 IP:211.22.xxx.xxx 訂閱


請教各位大大 前輩
小弟是初學者,還在進修
請教在Delphi 7中如何利用 堆疊 計算一字串?
如 (2 5)*4-(6/3)=26

在Button3的地方 利用後序的方式

小弟有上傳程式碼~
請各位前輩指點一下

感激不盡^__^
------
樹葉風
編輯記錄
sa74312 重新編輯於 2008-04-09 12:49:06, 註解 無‧
sa74312 重新編輯於 2008-04-09 12:51:34, 註解 無‧
cobraliu
中階會員


發表:15
回覆:75
積分:83
註冊:2007-11-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-04-09 18:10:14 IP:122.117.xxx.xxx 訂閱
可以試試下列方式
但加減乘除相關到運算方式,以輸入的值去加減。
除非是固定的運算方法,若不是那意義變成不大
如:1234586,這有7碼,12345,這有5碼,1234,這是4碼,那不就變成要寫成多組運算法??
固定輸入的位數??

[code delphi]
var
temp:string;
begin
temp:='25436';
Showmessage(IntToStr(((StrToInt(temp[1]) StrToInt(temp[2]))
*StrToInt(temp[3]))
- (StrToInt(temp[5]) div StrToInt(temp[4]))));
end;
[/code]
------
初學、初學、學了很久...還是在初學階段..Orz
sa74312
一般會員


發表:1
回覆:2
積分:0
註冊:2008-04-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-04-10 10:39:05 IP:211.22.xxx.xxx 訂閱
感謝大大
如果要用堆疊的方式來做計算
算式:(3 4)*6-(6/3)

(34 6*63/-) 這個算式該怎麼把它變成程式
答案是40
都寫在一個Button裡..可以嗎 ??
(數字不重要,而是我該怎麼把我的模型改成程式??
如:先把34..進堆疊.遇到運算子,把34拿出來計算後,把結果,在push堆疊內,再往下做.直到最後的式子結束了,把運算結果顯示在memo中
"1進2出"

阻礙點:(知道流程.但是還沒把流程變為程式的.理解能力)
感謝大大指教
------
樹葉風
編輯記錄
sa74312 重新編輯於 2008-04-10 10:51:13, 註解 無‧
cobraliu
中階會員


發表:15
回覆:75
積分:83
註冊:2007-11-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-04-10 13:13:07 IP:59.127.xxx.xxx 訂閱
也許你似乎要看一下關於程式語言的「運算邏輯」
因為你是要把算式演變成程式,若如你所列「(34 6*63/-) 這個算式該怎麼把它變成程式」
那這一段程式你要自已去寫判定方式以及符合邏輯的方式,這運算式是不是符合程式規則
像「(34 6*63/-)」===>「/-」這你要如何解釋成程式???
若加上它的前幾碼「63/-」這是運算式中是否有意義???
這一些解譯成程式碼的部份是你要寫成程式再運算
自已並不知是不是有現成的Function可以自動去解譯
也許你可以找找...也許有...
若沒有那就是你要做的工作(也就是寫成程式碼)
你必須去判定所輸入的字串中的每一個字元的意義,再進而去運算
Ex1:遇到「(」要先做,有「(」必定要有「)」諸如此類的程式--->好比「除錯程式」...@@
Ex2:「/- 」是不是有意義呢???若有意義要如何運算呢??如何定義??

運算先後順序
如:2 3*3...「*」要先做再相加...再腦袋中可以直接算它是「11」但在程式中呢???你輸入的是一段「運算」如何寫出一程式來運算呢??
輸入的是字串...如何變成運算呢??

以上是自已想到的..也許還有沒有想到的...
這一整個部份大概要靠你自已完成...@@

這種運算方式讓我想到...一種計算機..@@...統計學用的,可以輸入公式,再由計算機算出來...@@

===================引 用 sa74312 文 章===================
感謝大大
如果要用堆疊的方式來做計算
算式:(3 4)*6-(6/3)

(34 6*63/-) 這個算式該怎麼把它變成程式
答案是40
都寫在一個Button裡..可以嗎 ??
(數字不重要,而是我該怎麼把我的模型改成程式??
如:先把34..進堆疊.遇到運算子,把34拿出來計算後,把結果,在push堆疊內,再往下做.直到最後的式子結束了,把運算結果顯示在memo中
"1進2出"

阻礙點:(知道流程.但是還沒把流程變為程式的.理解能力)
感謝大大指教
------
初學、初學、學了很久...還是在初學階段..Orz
sa74312
一般會員


發表:1
回覆:2
積分:0
註冊:2008-04-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-04-10 13:22:06 IP:211.22.xxx.xxx 訂閱
感謝大大的指教
小弟我會學習的
在此小弟可否有個請求
將下列算演變成程式,利用堆疊的方式

(1 2)*3

*需要過程,範例來啟發*

將有助於小弟學習~!
再次感謝大大的指教
感激不盡
------
樹葉風
系統時間:2024-05-04 5:38:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!